Freigeben über


Exemplarische Vorgehensweise: Hosten von ActiveX-Steuerelementen in Windows Presentation Foundation durch das Verwenden von XAML

Aktualisiert: November 2007

Um eine verbesserte Interaktion mit Webbrowsern zu ermöglichen, können Sie Microsoft ActiveX-Steuerelemente in der WPF-basierten Anwendung verwenden. Diese exemplarische Vorgehensweise veranschaulicht, wie Sie Extensible Application Markup Language (XAML) verwenden, um den Microsoft Windows Media Player als Steuerelement auf einer WPF-Seite zu hosten.

In dieser exemplarischen Vorgehensweise werden u. a. 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 in dieser exemplarischen Vorgehensweise veranschaulichten Aufgaben finden Sie unter Beispiel zum Hosten von ActiveX-Steuerelementen in Windows Presentation Foundation mithilfe von XAML.

Wenn Sie diese exemplarische Vorgehensweise nachvollzogen haben, verstehen Sie, wie Sie Extensible Application Markup Language (XAML) verwenden, um ActiveX-Steuerelemente in WPF-basierten Anwendungen zu hosten.

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, die Wmp.dll genannt wird, hinzu.

  4. Öffnen Sie die Toolbox.

  5. Klicken Sie mit der rechten Maustaste in die Toolbox, und klicken Sie anschließend 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 UserControl1-Datei, 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 im Windows Forms-Designer WmpAxControl.

  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 ist mit dem Namen AxInterop.WMPLib.dll versehen 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, die WindowsFormsIntegration.dll genannt wird, hinzu.

  3. Fügen Sie einen Verweis auf die Windows Forms-Assembly, die System.Windows.Forms.dll genannt wird, hinzu.

  4. Ersetzen Sie den Code in Window1.xaml durch den folgenden Code.

    Die ax-Namespace-Zuordnung erstellt einen Verweis auf die AxInterop.WMPLib-Assembly, die das AxWindowsMediaPlayer-Steuerelement enthält. Die AxWindowsMediaPlayer-Klasse wird als untergeordnetes Element des WindowsFormsHost-Steuerelements erstellt.

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

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

Siehe auch

Aufgaben

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

Beispiel zum Hosten von ActiveX-Steuerelementen in Windows Presentation Foundation mithilfe von XAML

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