Partager via


Procédure pas à pas : hébergement d'un contrôle composite Windows Presentation Foundation dans les Windows Forms

Mise à jour : novembre 2007

Cette procédure pas à pas montre comment vous pouvez créer un contrôle composite WPF et l'héberger dans les contrôles Windows Forms en utilisant le contrôle ElementHost.

Dans cette procédure pas à pas, vous implémenterez un UserControlWPF qui contient deux contrôles enfants. Le UserControl affiche un cône tridimensionnel (3D). Le rendu d'objets 3D est beaucoup plus facile avec le WPF qu'avec Windows Forms. Il est donc normal d'héberger une classe WPFUserControl pour créer des graphiques 3D dans Windows Forms.

Cette procédure pas à pas illustre les tâches suivantes :

Pour une liste complète du code correspondant aux tâches illustrées dans cette procédure pas à pas, consultez Hébergement d'un contrôle composite Windows Presentation Foundation dans les Windows Forms, exemple.

Remarque Les boîtes de dialogue et les commandes de menu qui s'affichent peuvent être différentes de celles qui sont décrites dans l'aide, en fonction de vos paramètres actifs ou de l'édition utilisée. Pour modifier vos paramètres, choisissez Importation et exportation de paramètres dans le menu Outils. Pour plus d'informations, consultez Paramètres Visual Studio.

Composants requis

Les composants suivants sont nécessaires pour exécuter cette procédure pas à pas :

  • Visual Studio 2008.

Création du contrôle utilisateur

Pour créer le contrôle utilisateur

  1. Créez un projet de bibliothèque de contrôles utilisateur WPF nommé HostingWpfUserControlInWf.

  2. Ouvrez UserControl1.xaml dans le Concepteur WPF.

  3. Remplacez le code généré par le code suivant.

    Ce code définit un System.Windows.Controls.UserControl qui contient deux contrôles enfants. Le premier contrôle enfant est un contrôle System.Windows.Controls.Label; le deuxième est un Viewport3D qui affiche un cône 3D.

Création du projet hôte Windows Forms

Pour créer le projet hôte

  1. Ajoutez un projet d'application Windows nommé WpfUserControlHost à la solution. Pour plus d'informations, consultez Ajouter un nouveau projet, boîte de dialogue.

  2. Dans l'Explorateur de solutions, ajoutez une référence à l'assembly WindowsFormsIntegration nommé WindowsFormsIntegration.dll.

  3. Ajoutez des références aux assemblys WPF suivants :

    • PresentationCore

    • PresentationFramework

    • WindowsBase

  4. Ajoutez une référence au projet HostingWpfUserControlInWf.

  5. Dans l'Explorateur de solutions, définissez le projet WpfUserControlHost comme le projet de démarrage.

Hébergement du contrôle utilisateur Windows Presentation Foundation

Pour héberger le contrôle utilisateur

  1. Dans le Concepteur Windows Forms, ouvrez Form1.

  2. Dans la fenêtre Propriétés, cliquez sur Événements, puis double-cliquez sur l'événement Load pour créer un gestionnaire d'événements.

    L'éditeur de code ouvre le gestionnaire d'événements Form1_Load généré récemment.

  3. Remplacez le code dans Form1.cs par le code suivant :

    Le gestionnaire d'événements Form1_Load crée une instance de UserControl1 et l'ajoute à la collection de contrôles ElementHost des contrôles enfants. Le contrôle ElementHost est ajouté à la collection du formulaire des contrôles enfants.

    Imports System
    Imports System.Collections.Generic
    Imports System.ComponentModel
    Imports System.Data
    Imports System.Drawing
    Imports System.Text
    Imports System.Windows.Forms
    
    Imports System.Windows.Forms.Integration
    
    Public Class Form1
        Inherits Form
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            ' Create the ElementHost control for hosting the
            ' WPF UserControl.
            Dim host As New ElementHost()
            host.Dock = DockStyle.Fill
    
            ' Create the WPF UserControl.
            Dim uc As New HostingWpfUserControlInWf.UserControl1()
    
            ' Assign the WPF UserControl to the ElementHost control's
            ' Child property.
            host.Child = uc
    
            ' Add the ElementHost control to the form's
            ' collection of child controls.
            Me.Controls.Add(host)
        End Sub
    
    End Class
    
  4. Appuyez sur F5 pour générer et exécuter l'application.

Voir aussi

Tâches

Hébergement d'un contrôle composite Windows Presentation Foundation dans les Windows Forms, exemple

Concepts

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

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

Référence

ElementHost

WindowsFormsHost

Autres ressources

Concepteur WPF

Rubriques Comment relatives à la migration et à l'interopérabilité