Tutorial: Hospedar un control de usuario de formularios Windows Forms mediante WPF Designer

[Esta documentación se proporciona solo para fines preliminares y está sujeta a cambios en versiones posteriores. Se incluye temas en blanco como marcadores].

En este tutorial se muestra cómo se usa WPF Designer para Visual Studio para hospedar un control compuesto de Windows Forms en una aplicación de WPF. Para obtener más información sobre la interoperabilidad de Windows Forms y WPF, vea Migración e interoperabilidad

Entre las tareas que se explican en este tutorial se incluyen las siguientes:

  • Crear el proyecto.

  • Crear el control compuesto de formularios Windows Forms.

  • Hospedar el control de formularios Windows Forms en una aplicación WPF.

Nota

Los cuadros de diálogo y comandos de menú que se ven pueden diferir de los descritos en la Ayuda, en función de los valores de configuración o de edición activos.Para cambiar la configuración, elija Importar y exportar configuraciones en el menú Herramientas.Para obtener más información, vea Valores de configuración de Visual Studio.

Requisitos previos

Necesita los componentes siguientes para completar este tutorial:

  • .

Crear el proyecto

El primer paso es crear el proyecto para la aplicación host.

Para crear el proyecto

  1. Cree un proyecto de aplicación WPF denominado "DemoApplication". Para obtener más información, vea Cómo: Crear un nuevo proyecto de aplicación de WPF.

    MainWindow.xaml se abrirá en WPF Designer. 

  2. En el Explorador de soluciones, agregue una referencia al ensamblado WindowsFormsIntegration, denominado WindowsFormsIntegration.dll.

  3. En el Explorador de soluciones, agregue una referencia al ensamblado de formularios Windows Forms, denominado System.Windows.Forms.dll.

Crear el control compuesto de Windows Forms

En este procedimiento se muestra cómo crear un control compuesto que ajusta su tamaño al contenido. El control TableLayoutPanel y la propiedad AutoSize proporcionan la función de diseño dinámico de control. Para obtener más información, vea TableLayoutPanel (Control, formularios Windows Forms).

Para crear el control compuesto de formularios Windows Forms

  1. Agregue un nuevo proyecto de biblioteca de controles de formularios Windows Forms denominado "DemoControlLibrary" a la solución. Para obtener más información, vea How to: Add and Remove Solution Items.

    Se abre UserControl1 en el Diseñador de Windows Forms.

  2. En el Cuadro de herramientas, haga doble clic en el control TableLayoutPanel. Se muestra un control TableLayoutPanel en la superficie de diseño.

  3. Seleccione Quitar la última fila en el menú de etiquetas inteligentes Tareas de TableLayoutPanel.

  4. En la ventana Propiedades, establezca el valor de la propiedad Dock en Fill.

  5. En el Cuadro de herramientas, agregue un control Label a la primera celda del control TableLayoutPanel.

  6. En la ventana Propiedades, establezca las siguientes propiedades del control Label:

    Propiedad.

    Valor

    AutoSize

    True

    Dock

    Fill

    Margin

    0,0,0,0

    Text

    Enter Date:

    TextAlign

    MiddleCenter

  7. En el Cuadro de herramientas, agregue un control MaskedTextBox a la segunda celda del control TableLayoutPanel.

  8. Haga clic en el glifo de etiqueta inteligente (Glifo de etiqueta inteligente) en el control MaskedTextBox y seleccione Establecer máscara en el menú Tareas de MaskedTextBox.

    Aparece el cuadro de diálogo Máscara de entrada.

  9. En la columna Descripción de la máscara, seleccione Fecha corta (u otra descripción de máscara predefinida) y haga clic en el botón Aceptar.

  10. En la parte superior de la ventana Propiedades, seleccione el control TableLayoutPanel en la lista desplegable.

  11. Establezca el valor de la propiedad AutoSize en true.

  12. En la parte superior de la ventana Propiedades, seleccione UserControl1.

  13. Establezca el valor de la propiedad AutoSize en true y el valor de la propiedad Size en 0,0.

    UserControl1 cambia su tamaño para ajustarse al contenido.

  14. En el menú Compilar, seleccione Compilar solución para compilar la solución.

Hospedar el control de formularios Windows Forms en WPF

Se utiliza el elemento WindowsFormsHost para hospedar UserControl1 en una aplicación WPF.

Para hospedar el control de Windows Forms en WPF

  1. En el proyecto DemoApplication del Explorador de soluciones, agregue una referencia al proyecto DemoControlLibrary. Para obtener más información, vea Cómo: Agregar o quitar referencias en Visual Studio.

  2. Abra MainWindow.xaml en WPF Designer.

  3. En la vista XAML, importe el espacio de nombres DemoControlLibrary insertando la asignación de espacio de nombres siguiente en la etiqueta de apertura Window. Para obtener más información, vea Cómo: Importar un espacio de nombres a XAML.

    xmlns:dc="clr-namespace:DemoControlLibrary;assembly=DemoControlLibrary"
    
  4. Después de la etiqueta de apertura Grid, inserte el código siguiente.

    <WindowsFormsHost HorizontalAlignment="Left" VerticalAlignment="Top">
        <dc:UserControl1/>
    </WindowsFormsHost>
    

    Aparece en el diseñador una región que representa el control de Windows Forms hospedado.

  5. Ejecute la solución para probar el control de usuario.

Pasos siguientes

También puede hospedar controles de WPF en Windows Forms. Para obtener más información, vea Utilizar controles WPF.

Vea también

Tareas

Tutorial: Hospedar un control de Windows Forms en WPF

Referencia

WindowsFormsHost

ElementHost

Otros recursos

Trabajar con controles en WPF Designer

Migración e interoperabilidad