Pregunta

Quiero utilizar ventanas de WPF en una aplicación heredada Win32. Me gustaría que se comporten de una manera semejante, como la ventana de WPF siempre que se muestra en la parte superior de la ventana de Win32.

Para este me gustaría establecer el propietario de la ventana de WPF a las ventanas de Win32, pero tengo ni idea de cómo lograr esto.

Cualquier ayuda aquí?

Dado que la respuesta se esconde detrás de algún tipo de relación, aquí el código que hizo el truco:

System::Windows::Interop::WindowInteropHelper^ helper = gcnew System::Windows::Interop::WindowInteropHelper(myWpfChildWindow);
helper->Owner = (System::IntPtr)myMainWindowHWND;
¿Fue útil?

Solución

Este artículo muestra cómo obtener las asas para ambos, así como la manera de hacer que la ventana de WPF se convierta en una hoja transparente de la ventana Win32.

http://blogs.microsoft.co.il/blogs/tamir/archive/2007/04/11/Transparent-WPF-control-over-unmanaged-window-handle.aspx

En este artículo se utiliza un WindowInteropHelper para lograr una funcionalidad similar.

http://blogs.msdn.com/wpfsdk/archive/2007/04/03/centering-wpf-windows-with-wpf-and-non-wpf-owner-windows.aspx

página de MSDN en WindowInteropHelper:

http://msdn.microsoft.com/ en-us / library / system.windows.interop.windowinterophelper.aspx

Espero que ayude, Ed

Otros consejos

¿Qué hay de SetParent() ? Yo sé que funciona al hacer una ventana de WPF un formulario MDI secundario de un formulario Windows.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top