Procedura dettagliata: hosting di controlli Windows Form in WPF
WPF offre molti controlli con un set di funzionalità avanzato. Tuttavia, a volte è possibile usare controlli Windows Form nelle pagine WPF. Ad esempio, si potrebbe avere un notevole investimento nei controlli di Windows Form esistenti oppure è possibile avere un controllo Windows Form che fornisce funzionalità uniche.
Questa procedura dettagliata illustra come ospitare un controllo Windows Form System.Windows.Forms.MaskedTextBox in una pagina WPF usando il codice.
Per un listato di codice completo delle attività illustrate in questa procedura dettagliata vedere Esempio di hosting di un controllo Windows Forms in WPF.
Prerequisiti
Per completare la procedura dettagliata, è necessario Visual Studio.
Hosting del controllo Windows Forms
Per ospitare il controllo MaskedTextBox
Creare un progetto di applicazione WPF denominato
HostingWfInWpf
.Aggiungere riferimenti agli assembly indicati di seguito.
WindowsFormsIntegration
System.Windows.Forms
Aprire MainWindow.xaml nella finestra di progettazione WPF.
Denominare l'elemento Grid
grid1
.<Grid Name="grid1"> </Grid>
Nella visualizzazione Progettazione o nella visualizzazione XAML selezionare l'elemento Window .
Nella finestra Proprietà fare clic sulla scheda Eventi.
Fare doppio clic sull'evento Loaded .
Inserire il codice seguente per gestire l'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
Nella parte superiore del file aggiungere l'istruzione o
using
seguenteImports
.using System.Windows.Forms;
Imports System.Windows.Forms
Premere F5 per compilare ed eseguire l'applicazione.
Vedi anche
- ElementHost
- WindowsFormsHost
- Progettare XAML in Visual Studio
- Procedura dettagliata: hosting di controlli Windows Form in WPF tramite XAML
- Procedura dettagliata: hosting di un controllo Windows Form composito in WPF
- Procedura dettaglia: hosting di un controllo WPF composito in Windows Form
- Controlli Windows Form e controlli WPF equivalenti
- Esempio di hosting di un controllo Windows Forms in WPF
.NET Desktop feedback