2010-06-29 15 views
6

Estoy creando una ventana de HUD para inspeccionar entidades biz en mi aplicación WinForms.Cómo agregar una ventana de WPF a una aplicación de WinForms

Quería tener un estilo de ventana completamente diferente (minimizar el área de contenido y mostrar solo la barra de título, sin botones del sistema, etc.) así que creé una aplicación WPF para esto.

El problema es que quiero que esta ventana 'viva' dentro de mi aplicación WinForms. No puedo simplemente agregar el WPF como un OwnedForm o establecer el formulario principal como el propietario de la ventana de WPF.

Entonces, ¿cómo se puede lograr esto?

EDITAR: Gracias a pst encontré la respuesta. Aquí está el fragmento:

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

Respuesta

5

Ventana Una WPF tiene una ventana de Win32-asa/contexto.

Ver WindowInteropHelper. Puede usar esto con Win32 (¿o quizás hay compatibilidad con WinForms?) Para establecer la ventana de propietario de la ventana de WPF. Tenga en cuenta que el identificador no existe hasta el evento "fuente inicializada" (?).

Sin embargo, usando solo WinForms, puede personalizar la barra de título tanto como lo necesite (puede sobreescribir el dibujo a través de Win32, y creo que pierde todas las casillas de control sin ir tan lejos).

Hay muchos resultados de Google sobre este tema si usa las palabras clave correctas.

+2

¡El WindowInteropHelper funcionó bien! Parece que no utilicé las palabras clave correctas, he estado buscando todo el día para ello. ¡Gracias de nuevo! – jpsstavares

Cuestiones relacionadas