Freigeben über


Anleitung: Hosten eines Windows Forms-Steuerelements in WPF

WPF bietet viele Steuerelemente mit einem umfangreichen Featuresatz. Es kann jedoch vorkommen, dass Sie Windows Forms-Steuerelemente auf Ihren WPF-Seiten verwenden möchten. Sie können beispielsweise eine erhebliche Investition in vorhandene Windows Forms-Steuerelemente haben oder über ein Windows Forms-Steuerelement verfügen, das eindeutige Funktionen bereitstellt.

In dieser Anleitung wird gezeigt, wie Sie mit Code ein Windows Forms System.Windows.Forms.MaskedTextBox-Steuerelement auf einer WPF-Seite hosten können.

Eine vollständige Codeauflistung der Aufgaben, die in dieser Beispielanleitung gezeigt werden, finden Sie unter Hosten eines Windows Forms-Control in WPF-Beispiel.

Voraussetzungen

Sie benötigen Visual Studio, um diese Schritt-für-Schritt-Anleitung abzuschließen.

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. Nennen Sie das Grid-Element grid1.

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

  6. Klicken Sie im Eigenschaftenfenster auf die Registerkarte Ereignisse.

  7. Doppelklicken Sie auf das Loaded-Ereignis.

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

    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 oben in 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.

Siehe auch