Tutorial: Hospedar un control de formularios Windows Forms en WPF
WPF proporciona numerosos controles con un conjunto de características enriquecidas. Pero en ocasiones le interesará usar controles de Windows Forms en las páginas de WPF. Por ejemplo, tal vez haya realizado una inversión sustancial en controles de Windows Forms existentes o tenga un control de Windows Forms que ofrece una funcionalidad única.
En este tutorial se muestra cómo hospedar un control de Windows Forms System.Windows.Forms.MaskedTextBox en una página de WPF mediante código.
Para obtener una lista de código completa de las tareas mostradas en este tutorial, vea Hosting a Windows Forms Control in WPF Sample (Ejemplo de cómo hospedar un control de Windows Forms en WPF).
Requisitos previos
Necesita Visual Studio para completar este tutorial.
Hospedar el control de Windows Forms
Para hospedar el control MaskedTextBox
Cree un proyecto de aplicación WPF denominado
HostingWfInWpf
.Agregue referencias a los ensamblados siguientes.
WindowsFormsIntegration
System.Windows.Forms
Abra MainWindow.xaml en WPF Designer.
Asígnele al elemento Grid el nombre
grid1
.<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 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); }
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
En la parte superior del archivo, agregue la instrucción
Imports
ousing
siguiente.using System.Windows.Forms;
Imports System.Windows.Forms
Presione F5 para compilar y ejecutar la aplicación.
Vea también
- ElementHost
- WindowsFormsHost
- Diseño de XAML en Visual Studio
- Tutorial: Hospedar un control de Windows Forms en WPF mediante XAML
- Tutorial: Hospedar un control compuesto de formularios Windows Forms en WPF
- Tutorial: Hospedar un control compuesto de WPF en formularios Windows Forms
- Controles de Windows Forms y controles equivalentes de WPF
- Hosting a Windows Forms Control in WPF Sample (Ejemplo de cómo hospedar un control de Windows Forms en WPF)
.NET Desktop feedback