Wskazówki: hosting formantu 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).
Wymagania wstępne
Aby ukończyć ten przewodnik, potrzebny jest program Visual Studio.
Hostowanie kontrolki Formularze systemu Windows
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 Projektant WPF.
Nadaj elementowi Grid
grid1
nazwę .<Grid Name="grid1"> </Grid>
W widoku projektu lub widoku XAML wybierz Window element.
W okno Właściwości kliknij kartę Zdarzenia.
Loaded Kliknij dwukrotnie zdarzenie.
Wstaw następujący kod, aby obsłużyć Loaded zdarzenie.
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ą
Imports
instrukcję lubusing
.using System.Windows.Forms;
Imports System.Windows.Forms
Naciśnij klawisz F5, aby skompilować i uruchomić aplikację.
Zobacz też
- ElementHost
- WindowsFormsHost
- Projektowanie XAML w programie Visual Studio
- Przewodnik: hosting kontrolki Windows Form w WPF z wykorzystaniem XAML
- Przewodnik: hosting złożonej kontrolki Windows Forms w WPF
- Przewodnik: hosting złożonej kontrolki WPF w Windows Forms
- Kontrolki formularzy Windows Forms i równoważne kontrolki WPF
- Hostowanie kontrolki Windows Forms w przykładzie WPF
.NET Desktop feedback
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla