Procédure pas à pas : hébergement d'un contrôle Windows Forms dans WPF
WPF fournit de nombreux contrôles avec un ensemble de fonctionnalités riche. Toutefois, vous pouvez parfois utiliser des contrôles Windows Forms sur vos pages WPF. Par exemple, vous pouvez avoir un investissement important dans les contrôles Windows Forms existants, ou vous pouvez avoir un contrôle Windows Forms qui fournit des fonctionnalités uniques.
Cette procédure pas à pas vous montre comment héberger un contrôle Windows Forms System.Windows.Forms.MaskedTextBox sur une page WPF à l’aide du code.
Pour obtenir le listing de code complet des tâches illustrées dans cette procédure pas à pas, consultez Hébergement d’un contrôle Windows Forms dans WPF, exemple.
Prérequis
Cette procédure pas à pas nécessite Visual Studio.
Hébergement d’un contrôle Windows Forms
Pour héberger le contrôle MaskedTextBox
Créez un projet d’application WPF nommé
HostingWfInWpf
.Ajoutez les références aux assemblys suivants.
WindowsFormsIntegration
System.Windows.Forms
Ouvrez MainWindow.xaml dans le concepteur WPF.
Nommez l’élément Grid
grid1
.<Grid Name="grid1"> </Grid>
En mode Création ou en mode XAML, sélectionnez l’élément Window .
Dans la fenêtre Propriétés, cliquez sur l’onglet Événements.
Double-cliquez sur l’événement Loaded .
Insérez le code suivant pour gérer l’événement 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 haut du fichier, ajoutez l’instruction suivante
Imports
ouusing
l’instruction.using System.Windows.Forms;
Imports System.Windows.Forms
Appuyez sur F5 pour générer et exécuter l’application.
Voir aussi
- ElementHost
- WindowsFormsHost
- Concevoir en XAML dans Visual Studio
- Procédure pas à pas : hébergement d’un contrôle Windows Forms dans WPF avec XAML
- Procédure pas à pas : hébergement d'un contrôle composite Windows Forms dans WPF
- Procédure pas à pas : hébergement d’un contrôle composite WPF dans les Windows Forms
- Contrôles Windows Forms et contrôles WPF équivalents
- Hébergement d’un contrôle Windows Forms dans WPF, exemple
.NET Desktop feedback