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
Erstellen Sie ein WPF-Anwendungsprojekt mit dem Namen
HostingWfInWpf
.Fügen Sie Verweise auf die folgenden Assemblys hinzu.
WindowsFormsIntegration
System.Windows.Forms
Öffnen Sie „MainWindow.xaml“ im WPF-Designer.
Benennen Sie das Grid Element
grid1
.<Grid Name="grid1"> </Grid>
Wählen Sie in der Entwurfsansicht oder der XAML-Ansicht das Window-Element.
Klicken Sie im Fenster „Eigenschaften“ auf die Schaltfläche Ereignisse.
Doppelklicken Sie auf das Loaded-Ereignis.
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
Fügen Sie am Anfang der Datei die folgende
Imports
- oderusing
-Anweisung hinzu.using System.Windows.Forms;
Imports System.Windows.Forms
Drücken Sie F5, um die Anwendung zu erstellen und auszuführen.
Weitere Informationen
- ElementHost
- WindowsFormsHost
- Entwerfen von XAML-Code in Visual Studio
- Exemplarische Vorgehensweise: Hosten eines Windows Forms-Steuerelements in WPF mithilfe von XAML
- Exemplarische Vorgehensweise: Hosten eines zusammengesetzten Windows Forms-Steuerelements in WPF
- Exemplarische Vorgehensweise: Hosten eines zusammengesetzten WPF-Steuerelements in Windows Forms
- Windows Forms-Steuerelemente und entsprechende WPF-Steuerelemente
- Beispiel zum Hosten eines Windows Forms-Steuerelements in WPF
.NET Desktop feedback