共用方式為


逐步解說:使用 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

建立專案

若要建立並設定此專案

  1. 建立名稱為 HostingAxInWpf 的 WPF 應用程式專案。

  2. 將 Windows Form 控制項程式庫專案加入至應用程式專案,然後將專案命名為 WmpAxLib。如需詳細資訊,請參閱加入新的專案對話方塊

  3. 在 [方案總管] 中,加入名為 Wmp.dll 之 Microsoft Windows Media Player 組件的參考。

  4. 開啟 [工具箱]。

  5. 以滑鼠右鍵按一下 [工具箱],然後按一下 [選擇項目]。

  6. 按一下 [COM 元件] 索引標籤,然後選取 [Windows Media Player] 控制項,再按一下 [確定] 接受選擇。

    Microsoft Windows Media Player 控制項已加入至 [工具箱]。

  7. 以滑鼠右鍵按一下 [方案總管] 中的 [UserControl1] 檔案,然後按一下 [重新命名]。

  8. 將名稱變更為 WmpAxControl.cs 或 WmpAxControl.vb (視語言而定)。

  9. 如果出現替所有參考重新命名的提示,按一下 [是]。

建立 ActiveX 控制項

當 Microsoft ActiveX 控制項加入至設計介面時,Microsoft Visual Studio 會自動產生控制項的 AxHost 包裝函式類別 (Wrapper Class)。下列程序會建立名為 AxInterop.WMPLib.dll 的 Managed 組件。

若要建立 ActiveX 控制項

  1. 在 [Windows Form 設計工具] 中開啟 WmpAxControl。

  2. 從 [工具箱] 中,將 Microsoft Windows Media Player 控制項加入至設計介面。

  3. 在 [屬性] 視窗中,將 Microsoft Windows Media Player 控制項的 Dock 屬性值設定為 Fill

  4. 按 F6 建置控制項程式庫。

在 Windows Presentation Foundation 頁面上裝載 ActiveX 控制項

若要裝載 ActiveX 控制項

  1. 在 HostingAxInWpf 專案中,加入產生之 ActiveX 互通性 (Interoperability) 組件的參考。

    當您匯入 Microsoft Windows Media Player 控制項時,這個名為 AxInterop.WMPLib.dll 的組件會被加入至 WmpAxLib 專案的 Debug 資料夾中。

  2. 加入 WindowsFormsIntegration 組件的參考,該組件名為 WindowsFormsIntegration.dll。

  3. 加入 Windows Form 組件的參考,該組件名為 System.Windows.Forms.dll。

  4. 將 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>
    
  5. 開啟 Window1.xaml.cs,取消註解 WindowLoaded 方法的定義。

  6. 插入下列程式碼以處理 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";
    }
    
  7. 按 F5 建置並執行應用程式。

請參閱

工作

逐步解說:使用 XAML 在 Windows Presentation Foundation 中裝載 Windows Form 控制項

使用 XAML 在 Windows Presentation Foundation 中裝載 ActiveX 控制項範例

概念

逐步解說:在 Windows Presentation Foundation 中裝載 Windows Form 複合控制項

逐步解說:在 Windows Form 中裝載 Windows Presentation Foundation 控制項

參考

ElementHost

WindowsFormsHost

其他資源

WPF 設計工具

移轉和互通性 HOW TO 主題