Partager via


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 une liste complète des tâches présentées dans cette procédure pas à pas, consultez Hébergement d’un contrôle Windows Forms dans l’exemple WPF.

Conditions préalables

Vous avez besoin de Visual Studio pour effectuer cette procédure pas à pas.

Hébergement d’un contrôle Windows Forms

Pour héberger le contrôle MaskedTextBox

  1. Créez un projet d’application WPF nommé HostingWfInWpf.

  2. Ajoutez des références aux assemblages suivants.

    • WindowsFormsIntegration

    • System.Windows.Forms

  3. Ouvrez MainWindow.xaml dans le concepteur WPF.

  4. Nommez l’élément Gridgrid1.

    <Grid Name="grid1">
        
    </Grid>
    
  5. En mode Création ou en mode XAML, sélectionnez l’élément Window.

  6. Dans la fenêtre Propriétés, cliquez sur l’onglet Événements.

  7. Double-cliquez sur l’événement Loaded.

  8. 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
    
  9. En haut du fichier, ajoutez l’instruction Imports ou using suivante.

    using System.Windows.Forms;
    
    Imports System.Windows.Forms
    
  10. Appuyez sur F5 pour générer et exécuter l’application.

Voir aussi