Guide: Att använda en Windows Forms-kontroll i WPF
WPF tillhandahåller många kontroller med en omfattande funktionsuppsättning. Men ibland kanske du vill använda Windows Forms-kontroller på dina WPF-sidor. Du kan till exempel ha en betydande investering i befintliga Windows Forms-kontroller, eller så kan du ha en Windows Forms-kontroll som ger unika funktioner.
Den här handledningen visar hur du kan vara värd för en Windows Forms System.Windows.Forms.MaskedTextBox-kontroll på en WPF-sida med hjälp av kod.
En fullständig kodlista över de uppgifter som visas i den här genomgången finns i Hosting a Windows Forms Control in WPF Sample.
Förutsättningar
Du behöver Visual Studio för att slutföra den här genomgången.
Vara värd för Windows Forms-kontrollen
För att vara värd för MaskedTextBox-kontrollen
Skapa ett WPF-programprojekt med namnet
HostingWfInWpf
.Lägg till referenser till följande sammansättningar.
WindowsFormsIntegration
System.Windows.Forms
Öppna MainWindow.xaml i WPF Designer.
Ge elementet Grid namnet
grid1
.<Grid Name="grid1"> </Grid>
I designvyn eller XAML-vyn väljer du elementet Window.
I fönstret Egenskaper klickar du på fliken Händelser.
Dubbelklicka på händelsen Loaded.
Infoga följande kod för att hantera händelsen Loaded.
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
Lägg till följande
Imports
- ellerusing
-instruktion överst i filen.using System.Windows.Forms;
Imports System.Windows.Forms
Tryck på F5 för att skapa och köra programmet.
Se även
- ElementHost
- WindowsFormsHost
- Design XAML i Visual Studio
- Steg-för-steg-guide: Värdskap av en Windows Forms-kontroll i WPF med XAML
- Handledning: Integrera en sammansatt Windows Forms-kontroll i WPF
- Walkthrough: Att värda en WPF-sammansatt kontroll i Windows Forms
- Windows Forms-kontroller och motsvarande WPF-kontroller
- Hosting av en Windows Forms-kontroll i ett WPF-exempel
.NET Desktop feedback