Insertar control de WPF en un WinForm .NET 2.0

 
Hola a tod@s,
 
Ayer estuve probando como insertar un control hecho con WPF en un form de Windows y como me llevó algo de trabajo quería explicarlo de forma detallada ya que la ayuda que encontré al respecto no estaba completa.
 
 
Pasos que hay que seguir:
 
   1º. Creamos una aplicación Windows con C#. En mi caso, pruebaControl
 
 
 
   2º. Añadimos las referencias a las dlls PresentationCore.dll, PresentationFramework.dll, WindowsBase.dll y WindowsFormsIntegration.dll que encontraréis en la carpeta C:\Archivos de programa\Reference Assemblies\Microsoft\Framework\v3.0
 
 
 
   3º. Añadimos un nuevo elemento en el proyecto de tipo Control de WPF. En mi caso UserControl1, esto genera un fichero UserControl1.xaml y otro, el code behind, UserControl1.xaml.cs.
 
 
 
   4º. Editamos el fichero .xaml que se ha generado y le agregamos un botón, por ejemplo, el la zona del grid.
 
 
   5º. Cerramos el proyecto y desde el explorador de Windows abrimos el fichero pruebaControl.csproj con el bloc de notas, y añadimos <Import Project="$(MSBuildBinPath)\Microsoft.WinFX.targets" /> debajo de <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />. Guardamos los cambios y volvemos a abrir el proyecto con el Visual Studio.
 
 
 
   6º. Por defecto, al crear un proyecto Windows, tendremos un winform llamado Form1.cs, lo abrimos en vista diseño y desde el toolbox añadimos un control de tipo elementHost (en caso de que no lo tengáis en la toolbox lo podréis añadir con botón derecho sobre la toolbox, choose items, pestaña .NET Framework Components, podéis ordenar por Name y pinchar en el objeto ElementHost del Namespace System.Windows.Forms.Integration).
 
 
 
 
 
   7º. Ahora nos vamos al codebehind del form, y en el evento Load del formulario creamos una instancia del objeto WPF UserControl1 , se lo asignamos como Child al elementHost que hemos añadido en el Form, y el elementHost lo añadimos a la lista de controles que pertenecen al formulario. Pulsamos F5 y vemos como es cargado el control WPF dentro de un winform.
 
 

One Response to Insertar control de WPF en un WinForm .NET 2.0

  1. romny dice:

    Oye, interesante, muy buen post y ademas es muy aplicable a nuestros desarrollos.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: