2010-02-19 25 views

Respuesta

6

Que yo sepa, no puede alojar un Formulario de WinForms real en WPF.

Sin embargo, una buena alternativa es crear un UserControl normal en WinForms (como un proyecto de biblioteca de control de formularios de Windows) que contenga todas las funciones necesarias y los controles secundarios.

Luego, en su proyecto WPF, haga referencia a WindowsFormsIntegration.dll (debería estar en la pestaña .NET de Agregar referencias).

Luego, también haga referencia al ensamblaje que contiene el UserControl de WinForms y finalmente agregue un contenedor WindowsFormsHost al XAML.

Para obtener más información, consulte este useful tutorial por Sacha Barber.

1

Hay un artículo en CodeProject que muestra cómo alojar un exe como control en WinForms (es una aplicación que usa páginas de pestañas, arrastra un Winform.exe sobre él, crea un tabpage con esa ventana en él) , derivado de este artículo here. Sé que usted pidió específicamente WPF, pero tal vez eso podría llevarlo en la dirección correcta.

Espero que esto ayude, Saludos cordiales, Tom.

+0

no terminó yendo con esto, pero es una herramienta increíble Gracias por el enlace. – jasonk

16

puede hacerlo con el siguiente código:

En el XAML:

<WindowsFormsHost name="wfHost" /> 

En su código subyacente:

Form foo = new Form(); 
foo.TopLevel = false; 
foo.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 
wfHost.Child = foo; 
+1

+1, el poco conocido 'TopLevel'. Solía ​​hacer esto en * .NET Compact 1.1 * para duplicar la funcionalidad de "subformulario" como * Microsoft Access *. – AMissico

Cuestiones relacionadas