Tutorial: Hospedar un control de Windows Forms en WPF

WPF proporciona numerosos controles con un completo conjunto de características. Sin embargo, en ocasiones puede que prefiera utilizar controles de Windows Forms en páginas de WPF. Por ejemplo, es posible que disponga de un importante parque de controles de Windows Forms existentes, o un control de Windows Forms que proporcione una funcionalidad única.

En este tutorial se muestra cómo hospedar un control System.Windows.Forms.MaskedTextBox de Windows Forms en una página de WPF mediante código.

Para ver una lista de código completa de las tareas mostradas en este tutorial, vea Hosting a Windows Forms Control in WPF Sample.

Requisitos previos

Necesita los componentes siguientes para completar este tutorial:

  • Visual Studio 2010.

Hospedar un control de Windows Forms

Para hospedar el control MaskedTextBox

  1. Cree un proyecto de aplicación de WPF denominado HostingWfInWpf.

  2. Agregue referencias a los siguientes ensamblados.

    • WindowsFormsIntegration

    • System.Windows.Forms

  3. Abra MainWindow.xaml en WPF Designer.

  4. Asigne el nombre grid1 al elemento Grid.

    <Grid Name="grid1">
    
    </Grid>
    
  5. En la vista de diseño o en la vista XAML, seleccione el elemento Window.

  6. En la ventana Propiedades, haga clic en la pestaña Eventos.

  7. Haga doble clic en el evento Loaded.

  8. Inserte el código siguiente para controlar el evento Loaded.

    Private Sub Window_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
        ' Create the interop host control.
        Dim host As New System.Windows.Forms.Integration.WindowsFormsHost()
    
        ' Create the MaskedTextBox control.
        Dim mtbDate As New MaskedTextBox("00/00/0000")
    
        ' Assign the MaskedTextBox control as the host control's child.
        host.Child = mtbDate
    
        ' Add the interop host control to the Grid
        ' control's collection of child controls.
        Me.grid1.Children.Add(host)
    
    End Sub
    
    private void Window_Loaded(object sender, RoutedEventArgs e) 
    {
        // Create the interop host control.
        System.Windows.Forms.Integration.WindowsFormsHost host =
            new System.Windows.Forms.Integration.WindowsFormsHost();
    
        // Create the MaskedTextBox control.
        MaskedTextBox mtbDate = new MaskedTextBox("00/00/0000");
    
        // Assign the MaskedTextBox control as the host control's child.
        host.Child = mtbDate;
    
        // Add the interop host control to the Grid
        // control's collection of child controls.
        this.grid1.Children.Add(host);
    }
    
  9. En la parte superior del archivo, agregue Imports o la instrucción using siguiente.

    Imports System.Windows.Forms
    
    using System.Windows.Forms;
    
  10. Presione F5 para compilar y ejecutar la aplicación.

Vea también

Tareas

Tutorial: Hospedar un control de Windows Forms en WPF mediante XAML

Referencia

ElementHost

WindowsFormsHost

Conceptos

Tutorial: Hospedar un control compuesto de formularios Windows Forms en WPF

Tutorial: Hospedar un control compuesto de WPF en formularios Windows Forms

Controles de formularios Windows Forms y controles equivalentes de WPF

Otros recursos

WPF Designer

Ejemplo Hosting a Windows Forms Control in WPF

Historial de cambios

Fecha

Historial

Motivo

Agosto de 2010

Se ha actualizado para Visual Studio 2010.

Comentarios de los clientes.