Freigeben über


Exemplarische Vorgehensweise: Hosten eines Windows Forms-Steuerelements in WPF

Aktualisiert: August 2010

WPF stellt viele Steuerelemente mit einem umfangreichen Featuresatz bereit. Es kann jedoch vorkommen, dass Sie auf Ihren WPF-Seiten Windows Forms-Steuerelemente verwenden möchten. Beispielsweise könnte eine beträchtliche Investition in Windows Forms-Steuerelementen vorliegen, oder Sie verfügen über ein Windows Forms-Steuerelement, das eine einzigartige Funktionalität zur Verfügung stellt.

In dieser exemplarischen Vorgehensweise wird das Hosten eines Windows Forms System.Windows.Forms.MaskedTextBox-Steuerelements auf einer WPF-Seite mithilfe von Code beschrieben.

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

Vorbereitungsmaßnahmen

Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie die folgenden Komponenten:

  • Visual Studio 2010.

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 im WPF-Designer die Datei MainWindow.xaml.

  4. Geben Sie für das Grid-Element den Namen grid1 ein.

    <Grid Name="grid1">
    
    </Grid>
    
  5. Wählen Sie in der Designansicht 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 folgenden Code ein, um das Loaded-Ereignis zu behandeln.

    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
    
    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);
    }
    
  9. Fügen Sie am Anfang der Datei die folgende Imports- oder using-Anweisung hinzu.

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

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Hosten eines Windows Forms-Steuerelements in WPF mithilfe von XAML

Referenz

ElementHost

WindowsFormsHost

Konzepte

Exemplarische Vorgehensweise: Hosten eines zusammengesetzten Windows Forms-Steuerelements in WPF

Exemplarische Vorgehensweise: Hosten eines zusammengesetzten WPF-Steuerelements in Windows Forms

Windows Forms-Steuerelemente und äquivalente WPF-Steuerelemente

Weitere Ressourcen

WPF-Designer

Beispiel zum Hosten eines Windows Forms-Steuerelements in WPF

Änderungsprotokoll

Datum

Versionsgeschichte

Grund

August 2010

Aktualisiert für Visual Studio 2010.

Kundenfeedback.