Procédure pas à pas : hébergement d’un contrôle ActiveX dans WPF
Pour améliorer l’interaction avec les navigateurs, vous pouvez utiliser des contrôles Microsoft ActiveX dans votre application WPF. Cette procédure pas à pas montre comment héberger le lecteur Microsoft Windows Media en tant que contrôle sur une page WPF.
Les tâches illustrées dans cette procédure pas à pas sont les suivantes :
Création du projet.
Création du contrôle ActiveX.
Hébergement du contrôle ActiveX sur une page WPF.
Une fois cette procédure pas à pas terminée, vous allez comprendre comment utiliser des contrôles Microsoft ActiveX dans votre application WPF.
Conditions préalables
Vous avez besoin des composants suivants pour effectuer cette procédure pas à pas :
Lecteur Microsoft Windows Media installé sur l’ordinateur sur lequel Visual Studio est installé.
Visual Studio 2010.
Création du projet
Pour créer et configurer le projet
Créez un projet d’application WPF nommé
HostingAxInWpf
.Ajoutez un projet de bibliothèque de contrôles Windows Forms à la solution et nommez le projet
WmpAxLib
.Dans le projet WmpAxLib, ajoutez une référence à l’assembly du lecteur Windows Media, nommé wmp.dll.
Ouvrez la boîte à outils .
Cliquez avec le bouton droit dans la boîte à outils , puis cliquez sur Choisir des éléments.
Cliquez sur l’onglet composants COM, sélectionnez le contrôle lecteur Windows Media, puis cliquez sur OK.
Le contrôle Lecteur Windows Media 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.vb
ouWmpAxControl.cs
, en fonction de la langue.Si vous êtes invité à renommer toutes les références, cliquez sur Oui.
Création du contrôle ActiveX
Visual Studio génère automatiquement une classe wrapper AxHost pour un contrôle Microsoft ActiveX lorsque le contrôle est ajouté à une surface de conception. La procédure suivante crée un assembly géré nommé AxInterop.WMPLib.dll.
Pour créer le contrôle ActiveX
Ouvrez WmpAxControl.vb ou WmpAxControl.cs dans le Concepteur Windows Forms.
Depuis le Toolbox , ajoutez le contrôle Windows Media Player à la surface de conception.
Dans la fenêtre Propriétés, définissez la valeur de la propriété Dock du contrôle Lecteur Windows Media sur Fill.
Générez le projet de bibliothèque de contrôle WmpAxLib.
Hébergement du contrôle ActiveX sur une page WPF
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 Débogage du projet WmpAxLib lorsque vous avez importé le contrôle Lecteur Windows Media.
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.
Ouvrez MainWindow.xaml dans le concepteur WPF.
Nommez l’élément Grid
grid1
.<Grid Name="grid1"> </Grid>
En mode Création ou en mode XAML, sélectionnez l’élément Window.
Dans la fenêtre Propriétés, cliquez sur l’onglet Événements.
Double-cliquez sur l’événement Loaded.
Insérez le code suivant pour gérer l’événement Loaded.
Ce code crée une instance du contrôle WindowsFormsHost et ajoute une instance du contrôle
AxWindowsMediaPlayer
en tant qu’enfant.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 ActiveX control. WmpAxLib.AxWindowsMediaPlayer axWmp = new WmpAxLib.AxWindowsMediaPlayer(); // Assign the ActiveX control as the host control's child. host.Child = axWmp; // Add the interop host control to the Grid // control's collection of child controls. this.grid1.Children.Add(host); // Play a .wav file with the ActiveX control. axWmp.URL = @"C:\Windows\Media\tada.wav"; }
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 ActiveX control. Dim axWmp As New AxWMPLib.AxWindowsMediaPlayer() ' Assign the ActiveX control as the host control's child. host.Child = axWmp ' Add the interop host control to the Grid ' control's collection of child controls. Me.grid1.Children.Add(host) ' Play a .wav file with the ActiveX control. axWmp.URL = "C:\Windows\Media\tada.wav" End Sub
Appuyez sur F5 pour générer et exécuter l’application.
Voir aussi
.NET Desktop feedback