2010-06-29 23 views
6

Sto creando una finestra HUD per l'ispezione delle entità biz nella mia applicazione WinForms.Come aggiungere una finestra WPF a un'app WinForms

Volevo avere uno stile di finestra completamente diverso (ridurre l'area del contenuto e mostrare solo la barra del titolo, nessun pulsante di sistema, ecc.) Quindi ho creato un'applicazione WPF per questo.

Il problema è che voglio che questa finestra "viva" all'interno della mia applicazione WinForms. Non posso semplicemente aggiungere il WPF come OwnedForm o impostare il form principale come proprietario della finestra WPF.

Quindi, come è possibile raggiungere questo?

EDIT: Grazie a pst ho trovato la risposta. Ecco il frammento di codice:

System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(_inspector); 
WindowInteropHelper inspectorHelper = new WindowInteropHelper(_inspector); 
inspectorHelper.Owner = this.Handle; 
_inspector.Show(); 

risposta

5

Finestra A WPF ha una Win32-finestra maniglia/contesto.

Vedere WindowInteropHelper. È possibile utilizzare questo con Win32 (o forse c'è il supporto di WinForms?) Per impostare la finestra del proprietario della finestra WPF. Tenere presente che l'handle non esiste fino all'evento "source initialized" (?).

Tuttavia, utilizzando solo WinForms, è possibile personalizzare la barra del titolo quanto necessario (è possibile sovrascrivere il disegno stesso tramite Win32 e penso che si perdano tutte le caselle di controllo senza andare così lontano).

Ci sono molti risultati su google su questo argomento se si utilizzano le parole chiave corrette.

+2

WindowInteropHelper ha funzionato bene! Sembra che non ho usato le parole chiave corrette, ho cercato tutto il giorno per questo. Grazie ancora! – jpsstavares

Problemi correlati