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
Cree un proyecto de aplicación de WPF denominado HostingWfInWpf.
Agregue referencias a los siguientes ensamblados.
WindowsFormsIntegration
System.Windows.Forms
Abra MainWindow.xaml en WPF Designer.
Asigne el nombre grid1 al elemento Grid.
<Grid Name="grid1"> </Grid>
En la vista de diseño o en la vista XAML, seleccione el elemento Window.
En la ventana Propiedades, haga clic en la pestaña Eventos.
Haga doble clic en el evento Loaded.
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); }
En la parte superior del archivo, agregue Imports o la instrucción using siguiente.
Imports System.Windows.Forms
using System.Windows.Forms;
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
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
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. |