Procédure pas à pas : hébergement d'un contrôle ActiveX dans Windows Presentation Foundation avec XAML
Mise à jour : novembre 2007
Pour permettre une interaction améliorée avec les navigateurs Web, vous pouvez utiliser des contrôles Microsoft ActiveX dans votre application basée sur WPF. Cette procédure pas à pas montre comment vous pouvez utiliser XAML (Extensible Application Markup Language) pour héberger le Lecteur Windows Media Microsoft en tant que contrôle sur une page WPF.
Cette procédure pas à pas illustre les tâches suivantes :
Création du projet.
Création du contrôle ActiveX.
Hébergement du contrôle ActiveX sur une page Windows Presentation Foundation.
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 ActiveX dans Windows Presentation Foundation avec XAML, exemple.
Lorsque vous aurez effectué cette procédure pas à pas, vous comprendrez comment utiliser XAML (Extensible Application Markup Language) pour héberger des contrôles ActiveX dans votre application basée sur WPF.
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 :
Lecteur Windows Media Microsoft installé sur l'ordinateur où Visual Studio est installé.
Visual Studio 2008.
Création du projet
Pour créer et paramétrer le projet
Créez un projet d'application WPF nommé HostingAxInWpf.
Ajoutez un projet de bibliothèque de contrôles Windows Forms au projet d'application, puis nommez le projet WmpAxLib. 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 Lecteur Windows Media Microsoft nommé wmp.dll.
Ouvrez la Boîte à outils.
Cliquez avec le bouton droit sur Boîte à outils, puis cliquez sur Choisir les éléments.
Cliquez sur l'onglet Composants COM, sélectionnez le contrôle Lecteur Windows Media, puis cliquez sur OK pour accepter la sélection.
Le contrôle Lecteur Windows Media Microsoft est ajouté à la Boîte à outils.
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le fichier UserControl1, puis cliquez sur Renommer.
Modifiez le nom en WmpAxControl.cs ou WmpAxControl.vb, selon le langage.
Si vous êtes invités à renommer toutes les références, cliquez sur Oui.
Création du contrôle ActiveX
Microsoft Visual Studio génère automatiquement une classe wrapper AxHost pour un contrôle Microsoft ActiveX lorsque le contrôle est ajouté à une aire de conception. La procédure suivante crée un assembly managé nommé AxInterop.WMPLib.dll.
Pour créer le contrôle ActiveX
Dans le Concepteur Windows Forms, ouvrez WmpAxControl.
Depuis la Boîte à outils, ajoutez le contrôle Lecteur Windows Media Microsoft sur l'aire de conception.
Dans la fenêtre Propriétés, définissez la valeur de la propriété Dock du contrôle Lecteur Windows Media Microsoft en Fill.
Appuyez sur F6 pour générer la bibliothèque de contrôles.
Hébergement du contrôle ActiveX sur une page Windows Presentation Foundation
Pour héberger le contrôle ActiveX
Dans le projet HostingAxInWpf, ajoutez une référence à l'assembly d'interopérabilité ActiveX généré.
Cet assembly est nommé AxInterop.WMPLib.dll et a été ajouté au dossier Debug du projet WmpAxLib lorsque vous avez importé le contrôle Lecteur Windows Media Microsoft.
Ajoutez une référence à l'assembly WindowsFormsIntegration, nommé WindowsFormsIntegration.dll.
Ajoutez une référence à l'assembly Windows Forms nommé System.Windows.Forms.dll.
Remplacez le code dans Window1.xaml par le code suivant.
Le mappage de l'espace de noms ax établit une référence à l'assembly AxInterop.WMPLib qui contient le contrôle AxWindowsMediaPlayer. La classe AxWindowsMediaPlayer est créée comme enfant du contrôle WindowsFormsHost.
<Window x:Class="HostingAxInWpfWithXaml.Window1" xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml" xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms" xmlns:ax="clr-namespace:AxWMPLib;assembly=AxInterop.WMPLib" Title="HostingAxInWpfWithXaml" Loaded="WindowLoaded" > <Grid Name="grid1"> <WindowsFormsHost Name="wfh"> <ax:AxWindowsMediaPlayer x:Name="axWmp"/> </WindowsFormsHost> </Grid> </Window>
Ouvrez Window1.xaml.cs et supprimez les marques de commentaire de la définition de la méthode WindowLoaded.
Insérez le code suivant pour gérer l'événement Loaded.
private void WindowLoaded(object sender, RoutedEventArgs e) { // Get the AxHost wrapper from the WindowsFormsHost control. AxWMPLib.AxWindowsMediaPlayer axWmp = wfh.Child as AxWMPLib.AxWindowsMediaPlayer; // Play a .wav file with the ActiveX control. axWmp.URL = @"C:\WINDOWS\Media\Windows XP Startup.wav"; }
Appuyez sur F5 pour générer et exécuter l'application.
Voir aussi
Tâches
Hébergement d'un contrôle ActiveX dans Windows Presentation Foundation avec XAML, exemple
Concepts
Référence
Autres ressources
Rubriques Comment relatives à la migration et à l'interopérabilité