Exemplarische Vorgehensweise: Hosten eines Windows Forms-Steuerelements in WPF

WPF stellt viele Steuerelemente mit einer breiten Funktionspalette bereit. Möglicherweise möchten Sie Steuerelemente für Windows Forms jedoch auch gelegentlich auf Ihren WPF-Seiten verwenden. So könnten Sie beispielsweise viel Arbeit in vorhandene Windows Forms-Steuerelemente investiert haben, oder Sie haben vielleicht ein Windows Forms-Steuerelement, das einzigartige Funktionen bereitstellt.

In dieser exemplarischen Vorgehensweise wird gezeigt, wie Sie das Windows Forms-Steuerelement System.Windows.Forms.MaskedTextBox mithilfe von Code auf einer WPF-Seite hosten können.

Eine vollständige Codeauflistung der in dieser exemplarischen Vorgehensweise gezeigten Aufgaben finden Sie unter Beispiel zum Hosten eines Windows Forms-Steuerelements in WPF.

Voraussetzungen

Für diese exemplarische Vorgehensweise benötigen Sie Visual Studio.

Hosten des Windows Forms-Steuerelements

So hosten Sie das MaskedTextBox-Steuerelement

  1. Erstellen Sie ein WPF-Anwendungsprojekt mit dem Namen HostingWfInWpf.

  2. Fügen Sie Verweise auf die folgenden Assemblys hinzu.

    • WindowsFormsIntegration

    • System.Windows.Forms

  3. Öffnen Sie „MainWindow.xaml“ im WPF-Designer.

  4. Benennen Sie das Grid Element grid1.

    <Grid Name="grid1">
        
    </Grid>
    
  5. Wählen Sie in der Entwurfsansicht oder der XAML-Ansicht das Window-Element.

  6. Klicken Sie im Fenster „Eigenschaften“ auf die Schaltfläche Ereignisse.

  7. Doppelklicken Sie auf das Loaded-Ereignis.

  8. Fügen Sie den folgenden Code ein, um das Ereignis Loaded zu verarbeiten.

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        // Create the interop host control.
        System.Windows.Forms.Integration.WindowsFormsHost host =
            new System.Windows.Forms.Integration.WindowsFormsHost();
    
        // Create the MaskedTextBox control.
        MaskedTextBox mtbDate = new MaskedTextBox("00/00/0000");
    
        // Assign the MaskedTextBox control as the host control's child.
        host.Child = mtbDate;
    
        // Add the interop host control to the Grid
        // control's collection of child controls.
        this.grid1.Children.Add(host);
    }
    
    Private Sub Window_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
        ' Create the interop host control.
        Dim host As New System.Windows.Forms.Integration.WindowsFormsHost()
    
        ' Create the MaskedTextBox control.
        Dim mtbDate As New MaskedTextBox("00/00/0000")
    
        ' Assign the MaskedTextBox control as the host control's child.
        host.Child = mtbDate
    
        ' Add the interop host control to the Grid
        ' control's collection of child controls.
        Me.grid1.Children.Add(host)
    
    End Sub
    
  9. Fügen Sie am Anfang der Datei die folgende Imports- oder using-Anweisung hinzu.

    using System.Windows.Forms;
    
    Imports System.Windows.Forms
    
  10. Drücken Sie F5, um die Anwendung zu erstellen und auszuführen.

Weitere Informationen