Partager via


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

Mise à jour : novembre 2007

Pour permettre une interaction améliorée avec les navigateurs, vous pouvez utiliser des contrôles Microsoft ActiveX dans votre application basée sur WPF. Cette procédure pas à pas montre comment vous pouvez 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 de code complète des tâches affichées dans cette procédure pas à pas, consultez Hébergement d'un contrôle ActiveX dans Windows Presentation Foundation, exemple.

Lorsque vous aurez complété cette procédure pas à pas, vous comprendrez comment utiliser des contrôles Microsoft 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

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

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

  3. Dans l'Explorateur de solutions, ajoutez une référence à l'assembly Lecteur Windows Media Microsoft nommé wmp.dll.

  4. Ouvrez la Boîte à outils.

  5. Cliquez avec le bouton droit sur Boîte à outils, puis cliquez sur Choisir les éléments.

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

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

  8. Modifiez le nom en WmpAxControl.cs ou WmpAxControl.vb, selon le langage.

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

  1. Dans le Concepteur Windows Forms, ouvrez WmpAxControl.

  2. Depuis la Boîte à outils, ajoutez le contrôle Lecteur Windows Media Microsoft sur l'aire de conception.

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

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

  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 Windows Media Microsoft.

  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 Window1.xaml et remplacez le code généré par le code suivant.

    <Window x:Class="Window1"
        xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
        Title="HostingAxInWpf"
        Loaded="WindowLoaded" 
        >
    
        <Grid Name="grid1">
    
        </Grid>
    
    </Window>
    
    <Window x:Class="HostingAxInWpf.Window1"
        xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
        Title="HostingAxInWpf"
        Loaded="WindowLoaded" 
        >
    
        <Grid Name="grid1">
    
        </Grid>
    
    </Window>
    
  5. Ouvrez Window1.xaml.cs et supprimez les marques de commentaire de la définition de la méthode WindowLoaded.

  6. 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 Sub WindowLoaded(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\Windows XP Startup.wav"
    
    End Sub
    
    private void WindowLoaded(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.
        AxWMPLib.AxWindowsMediaPlayer axWmp = 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.
        this.grid1.Children.Add(host);
    
        // Play a .wav file with the ActiveX control.
        axWmp.URL = @"C:\WINDOWS\Media\Windows XP Startup.wav";
    }
    
  7. 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, exemple

Concepts

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

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

Référence

ElementHost

WindowsFormsHost

Autres ressources

Concepteur WPF

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