逐步解說:在 WPF 中裝載 ActiveX 控制項
若要啟用與瀏覽器的改善互動,您可以在 WPF 型應用程式中使用 Microsoft ActiveX 控制項。 本逐步解說示範如何將 Microsoft Windows 媒體播放器裝載為 WPF 頁面上的控制項。
這個逐步解說中所述的工作包括:
建立專案。
建立 ActiveX 控制項。
在 WPF 頁面上裝載 ActiveX 控制項。
當您完成本逐步解說時,您將了解如何在 WPF 型應用程式中使用 Microsoft ActiveX 控制項。
必要條件
您需要下列元件才能完成這個逐步解說:
在安裝 Visual Studio 的電腦上,安裝 Microsoft Windows 媒體播放器。
Visual Studio 2010。
建立專案
建立並設定專案
建立名為
HostingAxInWpf
的 WPF 應用程式專案。將 Windows Forms 控制項程式庫專案新增至方案,並將專案命名為
WmpAxLib
。在 WmpAxLib 專案中,新增 Windows 媒體播放器元件的參考,該元件名為 wmp.dll。
開啟 [工具箱]。
以滑鼠右鍵按一下 [工具箱],然後按一下 [選擇項目]。
按一下 [COM 元件] 索引標籤,選取 [Windows 媒體播放器] 控制項,然後按一下 [確定]。
Windows 媒體播放器控制項會新增至 [工具箱]。
以滑鼠右鍵按一下 [方案總管] 中的 [UserControl1.cs],然後按一下 [重新命名]。
根據語言,將名稱變更為
WmpAxControl.vb
或WmpAxControl.cs
。如果系統提示您重新命名所有參考,請按一下 [是]。
建立 ActiveX 控制項
當控制項新增至設計介面時,Visual Studio 會自動為 Microsoft ActiveX 控制項產生 AxHost 包裝函式類別。 下列程序會建立名為 AxInterop.WMPLib.dll 的受控組件。
建立 ActiveX 控制項
在 Windows Forms 設計工具中開啟 WmpAxControl.vb 或 WmpAxControl.cs。
從 [工具箱] 中,將 Windows 媒體播放器控制項新增至設計介面。
建置 WmpAxLib 控制項程式庫專案。
在 WPF 頁面上裝載 ActiveX 控制項
裝載 ActiveX 控制項
在 HostingAxInWpf 專案中,新增所產生的 ActiveX 互通性元件的參考。
此組件名為 AxInterop.WMPLib.dll,會在匯入 Windows 媒體播放器控制項時新增至 WmpAxLib 專案的 Debug 資料夾。
新增名為 WindowsFormsIntegration.dll 之 WindowsFormsIntegration 組件的參考。
新增名為 System.Windows.Forms.dll 的 Windows Forms 元件的參考。
在 WPF 設計工具中開啟 MainWindow.xaml。
為 [元素]Grid
grid1
命名。<Grid Name="grid1"> </Grid>
在 [設計視圖] 或 [XAML 檢視] 中,選取 Window 元素。
在 [屬性] 視窗中,按一下 [事件] 索引標籤。
連按兩下 Loaded 事件。
插入下列程式碼,以處理 Loaded 事件。
此程式代碼會建立 WindowsFormsHost 控制項的實例,並將
AxWindowsMediaPlayer
控制項的實例加入為其子系。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
按 F5 以建置並執行應用程式。