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
Vytvořte projekt aplikace WPF s názvem
HostingAxInWpf
.Přidejte do řešení projekt knihovny ovládacích prvků Windows Forms a pojmenujte projekt
WmpAxLib
.V projektu WmpAxLib přidejte odkaz na sestavení Windows Media Player, které má název wmp.dll.
Otevřete panel nástrojů.
Klepněte pravým tlačítkem myši na panel nástrojů a potom klepněte na tlačítko Zvolit položky.
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ů
. V Průzkumníku řešení klikněte pravým tlačítkem myši na soubor UserControl1 a poté klikněte na Přejmenovat.
Podle jazyka změňte název na
WmpAxControl.vb
neboWmpAxControl.cs
.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
Otevřete WmpAxControl.vb nebo WmpAxControl.cs v návrháři Windows Forms.
Z panelu nástrojů přidejte ovládací prvek Windows Media Player na návrhovou plochu.
V okně Vlastnosti nastavte hodnotu vlastnosti Dock ovládacího prvku Windows Media Player na Fill.
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
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.
Přidejte odkaz na sestavení WindowsFormsIntegration s názvem WindowsFormsIntegration.dll.
Přidejte odkaz na sestavení Windows Forms, které má název System.Windows.Forms.dll.
Otevřete MainWindow.xaml v Návrháři WPF.
Pojmenujte prvek Grid
grid1
.<Grid Name="grid1"> </Grid>
V návrhovém zobrazení nebo v zobrazení XAML vyberte prvek Window.
V okně Vlastnosti klikněte na kartu Události.
Dvakrát klikněte na událost Loaded.
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
Stisknutím klávesy F5 sestavte a spusťte aplikaci.
Viz také
.NET Desktop feedback