Ponga el control de WPF en un Formulario de Windows Forms

¿Cómo pones un control WPF en un Formulario de Windows Forms? Lo más probable es que inserte mi control WPF en Windows.Forms.Panel.

Coloque un control ElementHost dentro del panel. Este control puede alojar un elemento WPF. Desde el diseñador de WinForms, puede encontrar este control en ‘Interoperabilidad WPF’.

Para ver un ejemplo, consulte Tutorial: Alojar un control compuesto de WPF en Windows Forms .

Intenta leer esto:
Alojando un control WPF en una aplicación Windows Forms
http://community.infragistics.com/wpf/articles/hosting-a-wpf-control-in-a-windows-forms-application.aspx

Primero agregue referencias a los espacios de nombres de WPF (PresentationCore, PresentationFramework, UIAutomationProvider, UIAutomationTypes y WindowsBase). A continuación, cree una instancia del control ElementHost y el control que desea incrustar en la aplicación Windows Forms y luego enganche ese control al control ElementHost. Luego, simplemente agregue el control ElementHost a su colección de control de Formularios:

  ElementHost host = new ElementHost(); System.Windows.Controls.ListBox wpfListBox = new System.Windows.Controls.ListBox(); for (int i = 0; i < 10; i++) { wpfListBox.Items.Add("Item " + i.ToString()); } host.Dock = DockStyle.Fill; host.Controls.Add(wpfListBox); this.panel1.Controls.Add(host); 

Sin embargo, si desea utilizar XAML para describir el control WPF que desea utilizar en la aplicación Windows Forms, deberá agregar un elemento Avalon UserControl a su proyecto. Esto creará un archivo UserControl1.xaml y un archivo UserControl1.xaml.cs . A continuación, puede modificar el archivo UserControl1.xaml para que contenga cualquier XAML que desee describir su control. Entonces, simplemente crearía una instancia de este control y lo agregaría al

 ElementHost control as in the above example: ElementHost host = new ElementHost(); UserControl1 uc1 = new UserControl1(); host.Controls.Add(uc1); host.Dock = DockStyle.Fill; this.panel1.Controls.Add(host); 

Además, deberá modificar el archivo del proyecto porque la aplicación de Windows no tiene qué hacer con el archivo XAML. Deberá abrir el archivo de proyecto (.csproj, .vbproj, etc.) en un editor como el Bloc de notas y luego desplazarse hacia la parte inferior. Verás la siguiente línea:

  

Tendrá que copiar esta línea y pegarla justo debajo de la línea anterior y luego cambiar "CSharp" a "WinFX" para que las dos líneas se vean así:

   

Ahora guarde este archivo y vuelva a cargar el proyecto usando VS y ejecute la aplicación.

Fuente: http://windowsclient.net/learn/integration.aspx

resumiendo las respuestas anteriores para referencia rápida:

si no quiere meterse con la edición del proyecto y quiere quedarse con el diseñador:

asegúrese de agregar una referencia para WindowsFormsIntegration.dll, que normalmente proviene de \ ensamblados de referencia de la ventana \ microsoft \ Framework …

y si está usando un wpf usercontrol en su solución, probablemente ya tenga referencias de

System.Windows.Presentation, System.Windows.Activities, System.Windows.CompnentModel, System.Windows..RunTime, System.Windows.WorkFlowServices, System.Xaml.

de lo contrario, asegúrese de agregar las referencias anteriores requeridas.

en un miembro de formulario de Windows, agregue el wpf usercontrol myWpfUsrCtl al formulario de Windows de la siguiente manera

 void addWpfUsrCntl() { System.Windows.Forms.Integration.ElementHost elemthost1 = new System.Windows.Forms.Integration.ElementHost(); elemthost1.Dock = DockStyle.None; // change to to suit your need elemthost1.Parent = this; //elemthost1.AutoSize = true; // change to to suit your need FinCurl_.AutoSize = true; // change to to suit your need elemthost1.Child = myWpfUsrCtl; // and of course , you can add to a control to the form instead. // by "this" to the the desired control 

}