Durch die problemlose Nutzung von WPF-Windows als Fenster oder Dialog einer WinForms-Anwendung ist das Erstellen komplexer integrierter Lösungen möglich.
Da WinForms und WPF unterschiedliche Mechanismen für das Event-Routing nutzen, ist es notwendig, die WPF-Fenster in WinForms zu registrieren. Ohne diese Registrierung ist das WPF-Window nicht bedienbar, da Maus- und Keyboard-Events nicht an WPF weitergereicht werden.
Vor dem Aufruf der Show()- bzw. ShowDialog()-Methoden des WPF-Windows muss das Fenster mit System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(wpfWindow) registriert werden.
Zur Integration kann z.B. folgender VB.net-Code benutzt werden:
Dim myWpfWindow As New WpfWindow() myWpfWindow.Topmost = True System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(myWpfWindow) 'Sonst geht kein Keyboard-Input! myWpfWindow.Show()
Ist doch cool, oder?