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
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.
Nennen Sie das Grid-Element
grid1
.<Grid Name="grid1"> </Grid>
Wählen Sie in der Entwurfsansicht oder XAML-Ansicht das Window-Element aus.
Klicken Sie im Eigenschaftenfenster auf die Registerkarte Ereignisse.
Doppelklicken Sie auf das Loaded-Ereignis.
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
Fügen Sie oben in 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.
Siehe auch
- ElementHost
- WindowsFormsHost
- Design XAML 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
- Einbetten eines Windows Forms-Steuerelements in einem WPF-Beispiel
.NET Desktop feedback