Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se muestra cómo crear un control de Windows Presentation Foundation (WPF) para su uso en las aplicaciones basadas en Windows Forms.
Prerrequisitos
Necesita Visual Studio para completar este tutorial.
Creación del proyecto
Abra Visual Studio y cree un proyecto de aplicación de Windows Forms (.NET Framework) en Visual Basic o Visual C# denominado HostingWpf
.
Nota:
Al hospedar contenido de WPF, solo se admiten proyectos de C# y Visual Basic.
Crear un nuevo control WPF
Crear un nuevo control WPF y agregarlo al proyecto es tan fácil como agregar cualquier otro elemento al proyecto. El Diseñador de Windows Forms funciona con un tipo determinado de control denominado control compuesto o control de usuario. Para obtener más información sobre los controles de usuario de WPF, vea UserControl.
Nota:
El System.Windows.Controls.UserControl tipo para WPF es distinto del tipo de control de usuario proporcionado por Windows Forms, que también se denomina System.Windows.Forms.UserControl.
Para crear un nuevo control WPF:
En el Explorador de soluciones, agregue un nuevo proyecto de biblioteca de control de usuarios (.NET Framework) de WPF a la solución. Use el nombre predeterminado de la biblioteca de controles,
WpfControlLibrary1
. El nombre de control predeterminado esUserControl1.xaml
.Agregar el nuevo control tiene los siguientes efectos:
Se agrega el archivo UserControl1.xaml.
Se añade el archivo UserControl1.xaml.cs (o UserControl1.xaml.vb). Este archivo contiene el código subyacente para controladores de eventos y otra implementación.
Se agregan referencias a ensamblados de WPF.
El archivo UserControl1.xaml se abre en WPF Designer para Visual Studio.
En la vista Diseño, asegúrese de que
UserControl1
está seleccionado.En la ventana Propiedades , establezca el valor de las Width propiedades y Height en 200.
En el Cuadro de herramientas, arrastre un System.Windows.Controls.TextBox control a la superficie de diseño.
En la ventana Propiedades , establezca el valor de la Text propiedad en Contenido hospedado.
Nota:
En general, debe hospedar contenido WPF más sofisticado. El System.Windows.Controls.TextBox control se usa aquí solo con fines ilustrativos.
Compile el proyecto.
Agregar un control WPF a un formulario Windows Forms
El nuevo control WPF está listo para su uso en el formulario. Windows Forms usa el ElementHost control para hospedar contenido de WPF.
Para agregar un control WPF a un formulario Windows Forms:
Abra
Form1
en el Diseñador de Windows Forms.En el Cuadro de herramientas, busque la pestaña con la etiqueta WPFUserControlLibrary Controles de usuario de WPF.
Arrastre una instancia de
UserControl1
al formulario.Un ElementHost control se crea automáticamente en el formulario para hospedar el control WPF.
El ElementHost control se denomina
elementHost1
y, en la ventana Propiedades , puede ver que su Child propiedad está establecida en UserControl1.Las referencias a ensamblados de WPF se agregan al proyecto.
El
elementHost1
control tiene un panel de etiquetas inteligentes que muestra las opciones de hospedaje disponibles.
En el panel de tareas ElementHost Tasks, seleccione Acoplar en el contenedor primario.
Presione F5 para compilar y ejecutar la aplicación.
Pasos siguientes
Windows Forms y WPF son tecnologías diferentes, pero están diseñadas para interoperar estrechamente. Para proporcionar una apariencia y un comportamiento más enriquecidos en las aplicaciones, pruebe lo siguiente:
Hospede un control de Windows Forms en una página de WPF. Para obtener más información, vea Tutorial: Hospedaje de un control de Formularios Windows Forms en WPF.
Aplicar estilos visuales de Windows Forms al contenido de WPF. Para obtener más información, vea Cómo: Habilitar estilos visuales en una aplicación híbrida.
Cambie el estilo del contenido de WPF. Para obtener más información, vea Tutorial: Aplicar estilos al contenido de WPF.
Consulte también
.NET Desktop feedback