Sdílet prostřednictvím


Návod: Hostování ovládacího prvku ActiveX ve 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 ActiveX. Tento návod ukazuje, jak můžete hostovat Microsoft Windows Media Player 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 ActiveX

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

Po dokončení tohoto návodu budete vědět, jak používat ovládací prvky Microsoft ActiveX v aplikaci založené na WPF.

Požadavky

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

  • Aplikace Microsoft Windows Media Player je 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ů Windows Forms a pojmenujte projekt WmpAxLib.

  3. V projektu WmpAxLib přidejte odkaz na sestavení Windows Media Player, které má název 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 tlačítko Zvolit položky.

  6. Klikněte na kartu součásti modelu COM, vyberte ovládací prvek programu Windows Media Player a klikněte na OK.

    Ovládací prvek Windows Media Player se přidá dopanelu nástrojů .

  7. V Průzkumníku řešení klikněte pravým tlačítkem myši na soubor UserControl1 a poté klikněte na Přejmenovat.

  8. Podle jazyka změňte název na WmpAxControl.vb nebo WmpAxControl.cs.

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

Vytvoření ovládacího prvku ActiveX

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

Vytvoření ovládacího prvku ActiveX

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

  2. Z panelu nástrojů přidejte ovládací prvek Windows Media Player na návrhovou plochu.

  3. V okně Vlastnosti nastavte hodnotu vlastnosti Dock ovládacího prvku Windows Media Player na Fill.

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

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

Hostování ovládacího prvku ActiveX

  1. V projektu HostingAxInWpf přidejte odkaz na vygenerované sestavení interoperability 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 Windows Media Player.

  2. Přidejte odkaz na sestavení WindowsFormsIntegration s názvem WindowsFormsIntegration.dll.

  3. Přidejte odkaz na sestavení Windows Forms, které má název System.Windows.Forms.dll.

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

  5. Pojmenujte prvek Gridgrid1.

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

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

  8. Dvakrát klikněte na událost Loaded.

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

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

    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. Stisknutím klávesy F5 sestavte a spusťte aplikaci.

Viz také