Przewodnik: osadzanie kontrolki Windows Forms w WPF
WPF udostępnia wiele kontrolek z bogatym zestawem funkcji. Jednak czasami może być konieczne użycie kontrolek Windows Forms na stronach WPF. Na przykład może istnieć znaczna inwestycja w istniejące kontrolki Windows Forms lub może istnieć kontrolka Windows Forms, która zapewnia unikatowe funkcje.
W tym przewodniku pokazano, jak hostować kontrolkę windows Forms System.Windows.Forms.MaskedTextBox na stronie WPF przy użyciu kodu.
Aby uzyskać pełną listę kodu zadań pokazanych w tym przewodniku, zobacz Hosting a Windows Forms Control in WPF Sample(Hostowanie kontrolki formularzy systemu Windows w przykładzie WPF).
Warunki wstępne
Aby ukończyć ten przewodnik, potrzebny jest program Visual Studio.
Hostowanie kontrolki Windows Forms
Aby hostować kontrolkę MaskedTextBox
Utwórz projekt aplikacji WPF o nazwie
HostingWfInWpf
.Dodaj odwołania do następujących zestawów.
WindowsFormsIntegration
System.Windows.Forms
Otwórz plik MainWindow.xaml w projektancie WPF.
Nadaj Grid elementowi nazwę
grid1
.<Grid Name="grid1"> </Grid>
W widoku projektu lub widoku XAML wybierz element Window.
W oknie Właściwości kliknij kartę Zdarzenia.
Kliknij dwukrotnie zdarzenie Loaded.
Wstaw następujący kod, aby obsłużyć zdarzenie 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
W górnej części pliku dodaj następującą instrukcję
Imports
lubusing
.using System.Windows.Forms;
Imports System.Windows.Forms
Naciśnij F5, aby skompilować i uruchomić aplikację.
Zobacz też
- ElementHost
- WindowsFormsHost
- Projektowanie XAML w programie Visual Studio
- Przewodnik : Włączanie kontrolki formularzy systemu Windows w WPF za pomocą XAML
- Przewodnik : O hostowaniu złożonej kontrolki formularzy systemu Windows w WPF
- przewodnik : hostowanie kontrolki złożonej WPF w Windows Forms
- Kontrolki Windows Forms i równoważne kontrolki Windows Presentation Foundation (WPF)
- Umieszczanie kontrolki Windows Forms w przykładzie WPF
.NET Desktop feedback