Office ソリューションで WPF コントロールを使用する

Visual Studio の Office 開発ツールを使用して作成されたソリューションは、Windows フォーム コントロールを使用して直接操作することを前提としていますが、ソリューションで WPF コントロールを使用することもできます。 Windows Presentation Foundation (WPF) は、ユーザー インターフェイスをデザインするときに Windows フォームの代わりとして使用できます。 WPF では、UI、メディア、および文書を取り込むための新しい手法として、Extensible Application Markup Language (XAML) というマークアップ言語を使用します。 詳細については、WPF の概要に関する記事を参照してください。

対象: このトピックの情報は、ドキュメントレベルのプロジェクトおよび VSTO アドイン プロジェクトに適用されます。 「Office アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。

Office ソリューションの Windows フォーム コントロールをホストする UI 要素は、WPF コントロールもホストできます。 これには、次の要素が含まれます。

  • ドキュメント レベルのカスタマイズに含まれる文書およびワークシート

  • ドキュメント レベルのカスタマイズに含まれる操作ウィンドウ

  • VSTO アドインにおけるカスタム作業ウィンドウ

  • Outlook 用 VSTO アドインのフォーム領域

デザイン時に Office プロジェクトに WPF コントロールを追加する

Office ソリューションの UI 要素に WPF コントロールを直接追加することはできません。 直接追加する代わりに、ユーザー コントロール (WPF) 項目をプロジェクトに追加し、それを WPF コントロールのデザイン画面として使用します。 次に、WPF ユーザー コントロールをプロジェクトの UI 要素に追加します。

操作ウィンドウ、カスタム作業ウィンドウ、またはフォーム領域に WPF コントロールを追加するには

  1. カスタム作業ウィンドウ、操作ウィンドウ、またはフォーム領域を追加するプロジェクトを開きます。

  2. プロジェクトにユーザー コントロール (WPF) 項目を追加します。

  3. [ツールボックス] から WPF ユーザー コントロールのデザイン画面に WPF コントロールを追加します。

    既定では、WPF ユーザー コントロール デザイナーを開いたとき、[ツールボックス] には WPF コントロールだけが含まれています。

  4. プロジェクトをビルドします。

  5. 操作ウィンドウ、フォーム領域、またはカスタム作業ウィンドウをプロジェクトに追加します。

  6. [ツールボックス] の [ProjectNameWPF ユーザー コントロール] タブから、操作ウィンドウ、フォーム領域、またはカスタム作業ウィンドウのデザイナーに、WPF ユーザー コントロールをドラッグします。

    UI 要素内の WPF ユーザー コントロールをホストする ElementHost オブジェクトが自動的に作成されます。

  7. プロジェクトをリビルドします。

ドキュメント レベルのプロジェクト内の文書またはワークシートに WPF コントロールを追加するには

  1. Word または Excel のドキュメント レベルのプロジェクトを開きます。

  2. プロジェクトにユーザー コントロール (WPF) 項目を追加します。

  3. [ツールボックス] から WPF ユーザー コントロールのデザイン画面に WPF コントロールを追加します。

  4. プロジェクトをビルドします。

  5. ユーザー コントロール項目 (Windows フォーム ユーザー コントロール) をプロジェクトに追加します。

  6. Windows フォーム ユーザー コントロールのデザイナーを開きます。

  7. [ツールボックス] の [ProjectNameWPF ユーザー コントロール] タブからデザイナーに WPF ユーザー コントロールをドラッグします。

    Windows フォーム ユーザー コントロール内の WPF ユーザー コントロールをホストする ElementHost オブジェクトが自動的に作成されます。

  8. Windows フォーム ユーザー コントロールを文書またはブックにプログラムで追加するコードを作成します。 詳細については、「実行時に Office 文書にコントロールを追加する」を参照してください。

    Note

    Windows フォーム ユーザー コントロールをデザイナー上の文書またはワークシートにドラッグすることはできません。

  9. プロジェクトをリビルドします。

ElementHost クラスを使用して WPF コントロールをホストする

Visual Studio には Office ソリューションで Windows フォーム コントロールを使用できるようにする機能がありますが、WPF コントロールを対象とする同様の機能はありません。 たとえば、デザイン時に [ツールボックス] からドラッグするか、実行時にヘルパー メソッドを使用して、Windows フォーム コントロールを文書やワークシートに追加できます。 それに対し、これらの機能は WPF コントロールには使用できません。

WPF コントロールでは、Windows フォーム コントロールまたはフォームと WPF コントロールとの間の統合レイヤーとして ElementHost クラスを使用します。 デザイン時に WPF コントロールをソリューションに追加すると、ElementHost オブジェクトが自動的に作成されます。

WPF リソース

Windows フォーム コントロールおよびフォーム上での WPF のホストに関連するアーキテクチャおよびデザイン上の問題の詳細については、以下のトピックを参照してください。

Visual Studio でデザイン時に WPF コントロールを Windows フォーム コントロールおよびフォームに追加する方法の詳細については、以下のトピックを参照してください。