Quello che stai cercando è il controllo ElementHost
. Quello che ti permette di fare è prendere il contenuto WPF e ospitarlo in una finestra di Windows Form. Maggiori dettagli sono qui:
http://msdn.microsoft.com/en-us/library/ms745781.aspx
C'è anche un controllo che ti permette di fare il contrario: host di Windows Form contenuti all'interno di WPF:
http://nayyeri.net/host-windows-forms-controls-in-wpf
Tra i due, è possibile spostare la "linea di demarcazione" tra WPF e Windows Form con un certo grado di flessibilità.
C'è un avvertimento che è necessario tenere a mente. Windows Form funziona internamente in termini di HWND
... una finestra gestita dal gestore di finestre legacy di Windows (che gestisce lo z-order). WPF non lo fa ... Un albero WPF è tipicamente reso in un singolo HWND
', ed è WPF che gestisce cose come z-order. Ciò significa per te che z-order non funziona sempre come te lo aspetti, e ci sono cose che non puoi fare con i controlli di Windows Form ospitati che puoi fare con gli elementi WPF tradizionali. (C'è in realtà un modo per risolvere questo problema, ma comporta il rendering periodico dell'HWND in una bitmap di memoria, che trasforma quella bitmap in una superficie WPF e quindi reindirizza gli eventi diretti alla superficie WPF al sottostante HWND
. Ciò è potente, ma difficile
u può dare una migliore titolo per questo in modo che appaia meglio nei risultati di ricerca (magari copiare prima linea :)) –