Freigeben über


Exemplarische Vorgehensweise: Hosten eines ActiveX-Steuerelements in Windows Presentation Foundation

Aktualisiert: November 2007

Um eine verbesserte Interaktion mit Browsern zu ermöglichen, können Sie Microsoft ActiveX-Steuerelemente in der WPF-basierten Anwendung verwenden. Diese exemplarische Vorgehensweise veranschaulicht, wie Sie Microsoft Windows Media Player als Steuerelement auf einer WPF-Seite hosten können.

In dieser exemplarischen Vorgehensweise werden folgende Aufgaben veranschaulicht:

  • Erstellen des Projekts.

  • Erstellen des ActiveX-Steuerelements.

  • Hosten des ActiveX-Steuerelements auf einer Windows Presentation Foundation-Seite.

Eine vollständige Codeauflistung der Aufgaben in dieser exemplarischen Vorgehensweise finden Sie unter Beispiel für das Hosten eines ActiveX-Steuerelements in Windows Presentation Foundation.

Am Ende dieser exemplarischen Vorgehensweise verstehen Sie, wie Sie Microsoft ActiveX-Steuerelemente in WPF-basierten Anwendungen verwenden.

Hinweis: Je nach den aktiven Einstellungen oder der verwendeten Version können sich die angezeigten Dialogfelder und Menübefehle von den in der Hilfe beschriebenen unterscheiden. Klicken Sie im Menü Extras auf Einstellungen importieren und exportieren, um die Einstellungen zu ändern. Weitere Informationen finden Sie unter Visual Studio-Einstellungen.

Vorbereitungsmaßnahmen

Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie die folgenden Komponenten:

  • Microsoft Windows Media Player muss auf dem Computer installiert sein, auf dem Visual Studio installiert ist.

  • Visual Studio 2008.

Erstellen des Projekts

So erstellen Sie das Projekt und richten es ein

  1. Erstellen Sie ein WPF-Anwendungsprojekt mit dem Namen HostingAxInWpf.

  2. Fügen Sie dem Anwendungsprojekt ein Steuerelementbibliothek-Projekt in Windows Forms hinzu, und geben Sie dem Projekt den Namen WmpAxLib. Weitere Informationen finden Sie unter Dialogfeld "Neues Projekt hinzufügen".

  3. Fügen Sie im Projektmappen-Explorer einen Verweis auf die Microsoft Windows Media Player-Assembly mit dem Namen wmp.dll hinzu.

  4. Öffnen Sie die Toolbox.

  5. Klicken Sie mit der rechten Maustaste auf die Toolbox, und klicken Sie dann auf Elemente auswählen.

  6. Klicken Sie auf die Registerkarte COM-Komponenten, wählen Sie das Steuerelement für den Windows Media Player aus, und klicken Sie anschließend auf OK, um die Auswahl zu bestätigen.

    Das Microsoft Windows Media Player-Steuerelement wird der Toolbox hinzugefügt.

  7. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Datei UserControl1, und klicken Sie dann auf Umbenennen.

  8. Ändern Sie den Namen je nach Sprache in WmpAxControl.cs oder WmpAxControl.vb.

  9. Wenn Sie aufgefordert werden, alle Verweise umzubenennen, klicken Sie auf Ja.

Erstellen des ActiveX-Steuerelements

Microsoft Visual Studio generiert automatisch eine AxHost-Wrapperklasse für ein Microsoft ActiveX-Steuerelement, wenn das Steuerelement einer Entwurfsoberfläche hinzugefügt wird. Das folgende Verfahren erstellt eine verwaltete Assembly mit dem Namen AxInterop.WMPLib.dll.

So erstellen Sie das ActiveX-Steuerelement

  1. Öffnen Sie WmpAxControl im Windows Forms-Designer.

  2. Fügen Sie der Entwurfsoberfläche aus der Toolbox das Microsoft Windows Media Player-Steuerelement hinzu.

  3. Legen Sie im Eigenschaftenfenster den Wert der Dock-Eigenschaft des Microsoft Windows Media Player-Steuerelements auf Fill fest.

  4. Drücken Sie F6, um die Steuerelementbibliothek zu erstellen.

Hosten des ActiveX-Steuerelements auf einer Windows Presentation Foundation-Seite

So hosten Sie das ActiveX-Steuerelement

  1. Fügen Sie im HostingAxInWpf-Projekt einen Verweis auf die generierte ActiveX-Interoperabilitätsassembly hinzu.

    Diese Assembly trägt den Namen AxInterop.WMPLib.dll und wurde dem Debugordner des WmpAxLib-Projekts hinzugefügt, als Sie das Microsoft Windows Media Player-Steuerelement importiert haben.

  2. Fügen Sie einen Verweis auf die WindowsFormsIntegration-Assembly mit dem Namen WindowsFormsIntegration.dll hinzu.

  3. Fügen Sie einen Verweis auf die Windows Forms-Assembly mit dem Namen System.Windows.Forms.dll hinzu.

  4. Öffnen Sie die Datei Window1.xaml, und ersetzen Sie den generierten Code durch den folgenden Code.

    <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. Öffnen Sie Window1.xaml.cs, und heben Sie die Auskommentierung der Definition der WindowLoaded-Methode auf.

  6. Fügen Sie folgenden Code ein, um das Loaded-Ereignis zu behandeln.

    In diesem Code wird eine Instanz des WindowsFormsHost-Steuerelements erstellt und eine Instanz des AxWindowsMediaPlayer-Steuerelements als untergeordnetes Element hinzugefügt.

    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. Drücken Sie F5, um die Anwendung zu erstellen und auszuführen.

Siehe auch

Aufgaben

Beispiel für das Hosten eines ActiveX-Steuerelements in Windows Presentation Foundation

Konzepte

Exemplarische Vorgehensweise: Hosten eines zusammengesetzten Windows Forms-Steuerelements in Windows Presentation Foundation

Exemplarische Vorgehensweise: Hosten eines Windows Presentation Foundation-Steuerelements in Windows Forms

Referenz

ElementHost

WindowsFormsHost

Weitere Ressourcen

WPF-Designer

Gewusst-wie-Themen zu Migration und Interoperabilität