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 :
Création du UserControlWPF.
Création du projet hôte Windows Forms.
Hébergement du UserControlWPF.
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
Créez un projet de bibliothèque de contrôles utilisateur WPF nommé HostingWpfUserControlInWf.
Ouvrez UserControl1.xaml dans le Concepteur WPF.
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
Ajoutez un projet d'application Windows nommé WpfUserControlHost à la solution. Pour plus d'informations, consultez Ajouter un nouveau projet, boîte de dialogue.
Dans l'Explorateur de solutions, ajoutez une référence à l'assembly WindowsFormsIntegration nommé WindowsFormsIntegration.dll.
Ajoutez des références aux assemblys WPF suivants :
PresentationCore
PresentationFramework
WindowsBase
Ajoutez une référence au projet HostingWpfUserControlInWf.
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
Dans le Concepteur Windows Forms, ouvrez Form1.
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.
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
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
Référence
Autres ressources
Rubriques Comment relatives à la migration et à l'interopérabilité