Integrar WPF en Windows Forms

Integrar WPF en Windows Forms


En este tutorial se explica cómo se puede integrar Windows Presentation Foundation en un Windows Forms, lo cual puede ser conveniente realizarlo para casos específicos ya que en WPF se pueden hacer diseños muy atractivos, pero muchas de las aplicaciones ya desarrolladas están en Windows Forms.

1. Para el ejemplo se crea la siguiente estructura:
Solution Explorer
Estructura Solución Ejemplo
Tenemos 2 proyectos, uno es de tipo WindowsForms y el otro es Aplicación WPF.

2. En nuestro proyecto WpfApp agregamos un UserControl, le damos apariencia y funcionalidad requerida.

User Control WPF
Agrega UserControl
Design View
Diseñar, agrega funcionalidad




Se agregó:
  • 1 Canvas
  • 1 TextBox con el texto "Esto es WPF!"
  • 1 Button y dentro un evento que lance un mensaje: "Responde a eventos WPF"
  • 1 ComboBox que cambie el color del BackGround del Canvas
3. Compilar solo el proyecto WpfApp

4. Ir al proyecto Winform , agregar la referencia al otro proyecto WpfApp. Agregar un Form sencillo y dentro de este form agregar el control llamado "ElementHost":

adding control
Expandirlo
ElementHost Control
Añadir control ElementHost

Hay 2 maneras de invocar al form WPF:

  • En vista diseño, y
  • En Codigo


Invocar WPF en Vista diseño: En el cuadro de tareas del control veremos un combo para seleccionar UserControls WPF. (solo objetos de ese tipo pueden ser seleccionados)

5. En el combo antes mencionado seleccionar el UserControl1 creado anteriormente

Setting a property

6. Correr y probar. Fijarse que responde perfectamente a los eventos y demás interacciones programadas en WPF.
Running
Responde a Eventos

Running
Responde Interacciones


Invocar WPF en código: Simplemente instanciamos nuestro UserControl y lo agregamos al ElementHost.Child

WpfApp.UserControl1 uc = new WpfApp.UserControl1();
this.elementHost1.Child = uc;

Comentarios