逐步解說:使用 XAML 在 Windows Presentation Foundation 中裝載 ActiveX 控制項
更新:2007 年 11 月
若要改善與 Web 瀏覽器的互動,可以在 WPF 架構應用程式中使用 Microsoft ActiveX 控制項。本逐步解說示範如何使用可延伸標記語言 (XAML) 在 WPF 頁面上裝載 Microsoft Windows Media Player 做為控制項。
逐步解說將說明的工作包括:
建立專案。
建立 ActiveX 控制項。
在 Windows Presentation Foundation 頁面上裝載 ActiveX 控制項。
如需這個逐步解說中所說明之工作的完整程式碼清單,請參閱使用 XAML 在 Windows Presentation Foundation 中裝載 ActiveX 控制項範例。
當您完成本逐步解說時,您將了解如何使用可延伸標記語言 (XAML) 在 WPF 架構應用程式中裝載 ActiveX 控制項。
注意:根據您目前使用的設定或版本,您所看到的對話方塊與功能表命令可能會與 [說明] 中描述的不同。若要變更設定,請從 [工具] 功能表中選擇 [匯入和匯出設定]。如需詳細資訊,請參閱 Visual Studio 設定。
必要條件
您需要下列元件才能完成此逐步解說:
在安裝 Visual Studio 的電腦上安裝 Microsoft Windows Media Player
Visual Studio 2008
建立專案
若要建立並設定此專案
建立名稱為 HostingAxInWpf 的 WPF 應用程式專案。
將 Windows Form 控制項程式庫專案加入至應用程式專案,然後將專案命名為 WmpAxLib。如需詳細資訊,請參閱加入新的專案對話方塊。
在 [方案總管] 中,加入名為 Wmp.dll 之 Microsoft Windows Media Player 組件的參考。
開啟 [工具箱]。
以滑鼠右鍵按一下 [工具箱],然後按一下 [選擇項目]。
按一下 [COM 元件] 索引標籤,然後選取 [Windows Media Player] 控制項,再按一下 [確定] 接受選擇。
Microsoft Windows Media Player 控制項已加入至 [工具箱]。
以滑鼠右鍵按一下 [方案總管] 中的 [UserControl1] 檔案,然後按一下 [重新命名]。
將名稱變更為 WmpAxControl.cs 或 WmpAxControl.vb (視語言而定)。
如果出現替所有參考重新命名的提示,按一下 [是]。
建立 ActiveX 控制項
當 Microsoft ActiveX 控制項加入至設計介面時,Microsoft Visual Studio 會自動產生控制項的 AxHost 包裝函式類別 (Wrapper Class)。下列程序會建立名為 AxInterop.WMPLib.dll 的 Managed 組件。
若要建立 ActiveX 控制項
在 [Windows Form 設計工具] 中開啟 WmpAxControl。
從 [工具箱] 中,將 Microsoft Windows Media Player 控制項加入至設計介面。
在 [屬性] 視窗中,將 Microsoft Windows Media Player 控制項的 Dock 屬性值設定為 Fill。
按 F6 建置控制項程式庫。
在 Windows Presentation Foundation 頁面上裝載 ActiveX 控制項
若要裝載 ActiveX 控制項
在 HostingAxInWpf 專案中,加入產生之 ActiveX 互通性 (Interoperability) 組件的參考。
當您匯入 Microsoft Windows Media Player 控制項時,這個名為 AxInterop.WMPLib.dll 的組件會被加入至 WmpAxLib 專案的 Debug 資料夾中。
加入 WindowsFormsIntegration 組件的參考,該組件名為 WindowsFormsIntegration.dll。
加入 Windows Form 組件的參考,該組件名為 System.Windows.Forms.dll。
將 Window1.xaml 中的程式碼取代成下列範例中的程式碼。
ax 命名空間對應會建立 AxInterop.WMPLib 組件的參考,這個組件包含 AxWindowsMediaPlayer 控制項。AxWindowsMediaPlayer 類別會建立為 WindowsFormsHost 控制項的子系。
<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>
開啟 Window1.xaml.cs,取消註解 WindowLoaded 方法的定義。
插入下列程式碼以處理 Loaded 事件。
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"; }
按 F5 建置並執行應用程式。
請參閱
工作
逐步解說:使用 XAML 在 Windows Presentation Foundation 中裝載 Windows Form 控制項
使用 XAML 在 Windows Presentation Foundation 中裝載 ActiveX 控制項範例
概念
逐步解說:在 Windows Presentation Foundation 中裝載 Windows Form 複合控制項
逐步解說:在 Windows Form 中裝載 Windows Presentation Foundation 控制項