Partager via


Procédure pas à pas : hébergement d'un contrôle Windows Forms dans WPF

WPF fournit de nombreux contrôles dotés d'un ensemble de fonctionnalités riche. Toutefois, vous pouvez parfois souhaiter utiliser des contrôles Windows Forms sur vos pages WPF. Par exemple, vous pouvez avoir un investissement substantiel 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 indique comment héberger un contrôle Windows Forms System.Windows.Forms.MaskedTextBox sur une page WPF en utilisant du code.

Pour obtenir l'intégralité du code des tâches illustrées dans cette procédure pas à pas, consultez Hébergement d'un contrôle Windows Forms dans Windows Presentation Foundation, exemple.

Composants requis

Pour exécuter cette procédure pas à pas, vous devez disposer des composants suivants :

  • Visual Studio 2010.

Hébergement du contrôle Windows Forms

Pour héberger le contrôle MaskedTextBox

  1. Créez un projet Application WPF nommé HostingWfInWpf.

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

    • WindowsFormsIntegration

    • System.Windows.Forms

  3. Ouvrez MainWindow.xaml dans le Concepteur WPF.

  4. Nommez l'élément Grid grid1.

    <Grid Name="grid1">
    
    </Grid>
    
  5. En mode Design ou 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 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
    
    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);
    }
    
  9. En haut du fichier, ajoutez l'instruction Imports ou using suivante.

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

Voir aussi

Tâches

Procédure pas à pas : hébergement d'un contrôle Windows Forms dans WPF avec XAML

Référence

ElementHost

WindowsFormsHost

Concepts

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

Autres ressources

Concepteur WPF

Hébergement d'un contrôle Windows Forms dans Windows Presentation Foundation, exemple (page éventuellement en anglais)

Historique des modifications

Date

Historique

Motif

Août 2010

Mise à niveau pour Visual Studio 2010.

Commentaires client.