次の方法で共有


チュートリアル : Windows Presentation Foundation での、XAML を使用した ActiveX コントロールのホスト

更新 : 2007 年 11 月

Web ブラウザで、より高度な操作を可能にするには、WPF ベースのアプリケーションで Microsoft ActiveX コントロールを使用できます。このチュートリアルでは、Extensible Application Markup Language (XAML) を使用して、WPF ページ上のコントロールとして Microsoft Windows Media Player をホストする方法を示します。

このチュートリアルでは、以下のタスクを行います。

  • プロジェクトの作成。

  • ActiveX コントロールの作成

  • Windows Presentation Foundation ページでの ActiveX コントロールのホスト

このチュートリアルで示すタスクの完全なコード一覧については、「Windows Presentation Foundation での、XAML を使用した ActiveX コントロールのホストのサンプル」を参照してください。

このチュートリアルを完了すると、Extensible Application Markup Language (XAML) を使用して WPF ベースのアプリケーションで ActiveX コントロールをホストする方法を理解できるようになります。

メモ   使用している設定またはエディションによっては、ヘルプの記載と異なるダイアログ ボックスやメニュー コマンドが表示される場合があります。設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。詳細については、「Visual Studio の設定」を参照してください。

前提条件

このチュートリアルを完了するには、次のコンポーネントが必要です。

  • Visual Studio がインストールされているコンピュータにインストールされた Microsoft Windows Media Player。

  • Visual Studio 2008.

プロジェクトの作成

プロジェクトを作成し、設定するには

  1. HostingAxInWpf という名前の WPF アプリケーション プロジェクトを作成します。

  2. アプリケーション プロジェクトに Windows フォーム コントロール ライブラリ プロジェクトを追加し、プロジェクトに WmpAxLib という名前を付けます。詳細については、「[新しいプロジェクトの追加] ダイアログ ボックス」を参照してください。

  3. ソリューション エクスプローラで、Wmp.dll という名前の Microsoft Windows Media Player アセンブリへの参照を追加します。

  4. [ツールボックス] を開きます。

  5. ツールボックス内を右クリックし、[アイテムの選択] をクリックします。

  6. [COM コンポーネント] タブをクリックし、[Windows Media Player] コントロールを選択した後、[OK] をクリックして選択を確定します。

    Microsoft Windows Media Player コントロールが [ツールボックス] に追加されます。

  7. ソリューション エクスプローラで、[UserControl1] ファイルを右クリックし、[名前の変更] をクリックします。

  8. 言語に応じて名前を WmpAxControl.cs または WmpAxControl.vb に変更します。

  9. 全ての参照名を変更するかを確認するメッセージが表示されたら、[はい] をクリックします。

ActiveX コントロールの作成

コントロールがデザイン サーフェイスに追加されると、Microsoft Visual Studio によって Microsoft ActiveX コントロールの AxHost ラッパー クラスが自動的に生成されます。次のプロシージャにより、AxInterop.WMPLib.dll という名前の管理アセンブリを作成できます。

ActiveX コントロールを作成するには

  1. Windows フォーム デザイナで、WmpAxControl を開きます。

  2. [ツールボックス] から、デザイン サーフェイスに Microsoft Windows Media Player コントロールを追加します。

  3. [プロパティ] ウィンドウで Microsoft Windows Media Player コントロールの Dock プロパティの値を Fill に設定します。

  4. F6 キーを押して、コントロール ライブラリをビルドします。

Windows Presentation Foundation ページでの ActiveX コントロールのホスト

ActiveX コントロールをホストするには

  1. HostingAxInWpf プロジェクトで、生成された ActiveX 相互運用アセンブリに参照を追加します。

    このアセンブリ名は AxInterop.WMPLib.dll で、Microsoft Windows Media Player コントロールをインポートした時点で、WmpAxLib プロジェクトの Debug フォルダに追加されています。

  2. WindowsFormsIntegration.dll という名前の WindowsFormsIntegration アセンブリに参照を追加します。

  3. System.Windows.Forms.dll という名前の Windows フォーム アセンブリに参照を追加します。

  4. Window1.xaml のコードを次のコードに置き換えます。

    ax 名前空間の割り当ては、AxWindowsMediaPlayer コントロールを格納する AxInterop.WMPLib アセンブリへの参照を確立します。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 キーを押してアプリケーションをビルドし、実行します。

参照

処理手順

チュートリアル : Windows Presentation Foundation での、XAML を使用した Windows フォーム コントロールのホスト

Windows Presentation Foundation での、XAML を使用した ActiveX コントロールのホストのサンプル

概念

チュートリアル : Windows Presentation Foundation での Windows フォーム複合コントロールのホスト

チュートリアル : Windows フォームでの Windows Presentation Foundation コントロールのホスト

参照

ElementHost

WindowsFormsHost

その他の技術情報

WPF デザイナ

移行および相互運用性に関する「方法」トピック