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.
WPF proporciona muchos controles con un conjunto de características enriquecido. Sin embargo, es posible que a veces quiera usar controles de Windows Forms en las páginas de WPF. Por ejemplo, puede tener una inversión sustancial en los controles existentes de Windows Forms o puede tener un control de Windows Forms que proporcione 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 que se muestran en este tutorial, vea Hospedaje de un control de Formularios Windows Forms en el ejemplo de WPF.
Prerrequisitos
Necesita Visual Studio para completar este tutorial.
Alojar el control de Windows Forms
Para alojar el control MaskedTextBox
Cree un proyecto de aplicación de WPF denominado
HostingWfInWpf
.Agregue referencias a los ensamblados siguientes.
WindowsFormsIntegration
System.Windows.Forms
Abra MainWindow.xaml en WPF Designer.
Asigne al elemento el Grid nombre
grid1
.<Grid Name="grid1"> </Grid>
En la vista Diseño o 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 Loaded evento.
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 siguiente declaración
Imports
ousing
.using System.Windows.Forms;
Imports System.Windows.Forms
Presione F5 para compilar y ejecutar la aplicación.
Consulte también
- ElementHost
- WindowsFormsHost
- Diseño de XAML en Visual Studio
- Guía paso a paso: Hospedaje de un control de Windows Forms en WPF mediante XAML
- Tutorial: Hospedaje de un control compuesto de Formularios Windows Forms en WPF
- Tutorial: Alojar un control compuesto de WPF en Windows Forms
- Controles de Windows Forms y controles WPF equivalentes
- Hospedaje de un control de Windows Forms en un ejemplo de WPF
.NET Desktop feedback