Windows Forms Komponenten lassen sich in WPF-Anwendungen einbinden.
Zuerst müssen wir dem WPF-Projekt folgende Referenzen hinzufügen:
- WindowsFormsIntegration
- System.Windows.Forms
Unser Beispielfenster sieht so aus:
<StackPanel Orientation="Vertical" Margin="20"> <TextBlock Text="Winforms Integration into WPF" FontSize="20" FontWeight="DemiBold"></TextBlock> <Grid x:Name="GridWinforms" Margin="0, 10, 0, 10"></Grid> <Button Content="WPF Button"></Button> </StackPanel>
In das Grid wollen wir nun unsere Windows Forms Komponente einbinden, dies können wir in der OnLoaded
Methode des Fensters erledigen:
private void MainWindow_OnLoaded(object sender, RoutedEventArgs e) { var host = new System.Windows.Forms.Integration.WindowsFormsHost(); var button = new System.Windows.Forms.Button(); button.Text = "Windows Forms Button"; button.Click += Button_Click; host.Child = button; GridWinforms.Children.Add(host); }
Fertig, nach dem Start wird der Windows Forms Button angezeigt.