Passo a passo: Hospedando um controle Windows Forms no WPF
WPF fornece muitos controles com um rico conjunto de recursos. No entanto, às vezes você pode querer usar controles Windows Forms em suas páginas WPF. Por exemplo, você pode ter um investimento substancial em controles existentes do Windows Forms ou pode ter um controle Windows Forms que fornece funcionalidade exclusiva.
Este passo a passo mostra como hospedar um controle de System.Windows.Forms.MaskedTextBox do Windows Forms em uma página WPF usando código.
Para obter uma lista de código completa das tarefas mostradas nesta explicação passo a passo, consulte Hosting a Windows Forms Control in WPF Sample.
Pré-requisitos
Você precisa do Visual Studio para concluir este passo a passo.
Hospedando o controlo do Windows Forms
Para hospedar o controle MaskedTextBox
Crie um projeto de aplicativo WPF chamado
HostingWfInWpf
.Adicione referências às assemblagens a seguir.
Integração do WindowsForms
System.Windows.Forms
Abra MainWindow.xaml no WPF Designer.
Nomeie o elemento Grid
grid1
.<Grid Name="grid1"> </Grid>
No modo Design ou XAML, selecione o elemento Window.
Na janela Propriedades, clique no separador Eventos.
Clique duas vezes no evento Loaded.
Insira o seguinte código para manipular o 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
Na parte superior do arquivo, adicione a seguinte instrução
Imports
ouusing
.using System.Windows.Forms;
Imports System.Windows.Forms
Pressione F5 para criar e executar o aplicativo.
Ver também
- ElementHost
- WindowsFormsHost
- Design XAML no Visual Studio
- Guia passo a passo: Integrar um controle Windows Forms no WPF usando XAML
- Passo a passo: Hospedando um controle composto do Windows Forms no WPF
- Passo a Passo: Hospedando um Controle Composto WPF no Windows Forms
- controles Windows Forms e controles WPF equivalentes
- Hospedando um controle Windows Forms no WPF Sample
.NET Desktop feedback