Návod: Hostování ovládacího prvku ActiveX v objektu WPF

Pokud chcete povolit vylepšenou interakci s prohlížeči, můžete v aplikaci založené na WPF použít ovládací prvky Microsoft technologie ActiveX. Tento návod ukazuje, jak můžete hostovat Microsoft Přehrávač médií Windows jako ovládací prvek na stránce WPF.

Mezi úlohy znázorněné v tomto názorném postupu patří:

  • Vytvoření projektu

  • Vytvoření ovládacího prvku technologie ActiveX

  • Hostování ovládacího prvku technologie ActiveX na stránce WPF.

Po dokončení tohoto návodu pochopíte, jak používat ovládací prvky Microsoft technologie ActiveX v aplikaci založené na WPF.

Předpoklady

K dokončení tohoto návodu budete potřebovat následující komponenty:

  • Microsoft Přehrávač médií Windows nainstalovaný v počítači, na kterém je nainstalovaná sada Visual Studio.

  • Visual Studio 2010

Vytvoření projektu

Vytvoření a nastavení projektu

  1. Vytvořte projekt aplikace WPF s názvem HostingAxInWpf.

  2. Přidejte do řešení projekt knihovny ovládacích prvků model Windows Forms a pojmenujte projekt WmpAxLib.

  3. V projektu WmpAxLib přidejte odkaz na Přehrávač médií Windows sestavení s názvem wmp.dll.

  4. Otevřete panel nástrojů.

  5. Klepněte pravým tlačítkem myši na panel nástrojů a potom klepněte na příkaz Zvolit položky.

  6. Klepněte na kartu Součásti modelu COM, vyberte ovládací prvek Přehrávač médií Windows a klepněte na tlačítko OK.

    Ovládací prvek Přehrávač médií Windows se přidá do panelu nástrojů.

  7. V Průzkumník řešení klepněte pravým tlačítkem myši na soubor UserControl1 a potom klepněte na tlačítko Přejmenovat.

  8. Změňte název na WmpAxControl.vb nebo WmpAxControl.csv závislosti na jazyce.

  9. Pokud se zobrazí výzva k přejmenování všech odkazů, klikněte na tlačítko Ano.

Vytvoření ovládacího prvku technologie ActiveX

Visual Studio při přidání ovládacího prvku do návrhové plochy automaticky vygeneruje AxHost třídu obálky pro ovládací prvek Microsoft technologie ActiveX. Následující postup vytvoří spravované sestavení s názvem AxInterop.WMPLib.dll.

Vytvoření ovládacího prvku technologie ActiveX

  1. Otevřete soubor WmpAxControl.vb nebo WmpAxControl.cs v návrháři model Windows Forms.

  2. Z panelu nástrojů přidejte ovládací prvek Přehrávač médií Windows na návrhovou plochu.

  3. V okno Vlastnosti nastavte hodnotu vlastnosti ovládacího prvku Dock Přehrávač médií Windows na Fillhodnotu .

  4. Sestavte projekt knihovny ovládacích prvků WmpAxLib.

Hostování ovládacího prvku technologie ActiveX na stránce WPF

Hostování ovládacího prvku technologie ActiveX

  1. V projektu HostingAxInWpf přidejte odkaz na vygenerované sestavení interoperability technologie ActiveX.

    Toto sestavení má název AxInterop.WMPLib.dll a byl přidán do složky Debug projektu WmpAxLib při importu ovládacího prvku Přehrávač médií Windows.

  2. Přidejte odkaz na sestavení WindowsFormsIntegration, které má název WindowsFormsIntegration.dll.

  3. Přidejte odkaz na sestavení model Windows Forms s názvem System.Windows.Forms.dll.

  4. Otevřete MainWindow.xaml v Návrháři WPF.

  5. Pojmenujte Grid prvek grid1.

    <Grid Name="grid1">
        
    </Grid>
    
  6. V návrhovém zobrazení nebo v zobrazení XAML vyberte Window prvek.

  7. V okno Vlastnosti klikněte na kartu Události.

  8. Poklikejte na Loaded událost.

  9. Vložte následující kód pro zpracování Loaded události.

    Tento kód vytvoří instanci WindowsFormsHost ovládacího prvku a přidá instanci AxWindowsMediaPlayer ovládacího prvku jako jeho podřízené.

    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. Stiskněte F5, aby se aplikace sestavila a spustila.

Viz také