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?