Partager via


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 microsoft Lecteur multimédia Windows en tant que contrôle sur une page WPF.

Cette procédure pas à pas décrit notamment les tâches 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.

Prérequis

Vous devez disposer des éléments suivants pour exécuter cette procédure pas à pas :

  • Microsoft Lecteur multimédia Windows installé sur l’ordinateur sur lequel Visual Studio est installé.

  • Visual Studio 2010.

Création du projet

Pour créer et configurer le projet

  1. Créez un projet d’application WPF nommé HostingAxInWpf.

  2. Ajoutez un projet de bibliothèque de contrôles Windows Forms à la solution et nommez le projet WmpAxLib.

  3. Dans le projet WmpAxLib, ajoutez une référence à l’assembly Lecteur multimédia Windows, nommé wmp.dll.

  4. Ouvrez la boîte à outils.

  5. Cliquez avec le bouton droit dans la boîte à outils, puis cliquez sur Choisir des éléments.

  6. Cliquez sur l’onglet Composants COM, sélectionnez le contrôle Lecteur multimédia Windows, puis cliquez sur OK.

    Le contrôle Lecteur multimédia Windows est ajouté à la boîte à outils.

  7. Dans Explorateur de solutions, cliquez avec le bouton droit sur le fichier UserControl1, puis cliquez sur Renommer.

  8. Modifiez le nom WmpAxControl.vb ou WmpAxControl.cs, en fonction de la langue.

  9. 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 AxHost classe wrapper pour un contrôle Microsoft ActiveX lorsque le contrôle est ajouté à une surface de conception. La procédure suivante crée un assembly managé nommé AxInterop.WMPLib.dll.

Pour créer le contrôle ActiveX

  1. Ouvrez WmpAxControl.vb ou WmpAxControl.cs dans le Concepteur Windows Forms.

  2. À partir de la boîte à outils, ajoutez le contrôle Lecteur multimédia Windows à l’aire de conception.

  3. Dans le Fenêtre Propriétés, définissez la valeur de la propriété Filldu Dock contrôle Lecteur multimédia Windows sur .

  4. 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

  1. 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 multimédia Windows.

  2. Ajoutez une référence à l’assembly WindowsFormsIntegration, nommé WindowsFormsIntegration.dll.

  3. Ajoutez une référence à l’assembly Windows Forms, nommé System.Windows.Forms.dll.

  4. Ouvrez MainWindow.xaml dans le concepteur WPF.

  5. Nommez l’élément Gridgrid1.

    <Grid Name="grid1">
        
    </Grid>
    
  6. En mode Création ou en mode XAML, sélectionnez l’élément Window .

  7. Dans la fenêtre Propriétés, cliquez sur l’onglet Événements.

  8. Double-cliquez sur l’événement Loaded .

  9. Insérez le code suivant pour gérer l’événement Loaded .

    Ce code crée une instance du WindowsFormsHost contrôle et ajoute une instance du AxWindowsMediaPlayer contrôle 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
    
  10. Appuyez sur F5 pour générer et exécuter l’application.

Voir aussi