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 コントロールを追加するには
カスタム作業ウィンドウ、操作ウィンドウ、またはフォーム領域を追加するプロジェクトを開きます。
プロジェクトに ユーザー コントロール (WPF) 項目を追加します。
[ツールボックス] から WPF ユーザー コントロールのデザイン画面に WPF コントロールを追加します。
既定では、WPF ユーザー コントロール デザイナーを開いたとき、 [ツールボックス] には WPF コントロールだけが含まれています。
プロジェクトをビルドします。
操作ウィンドウ、フォーム領域、またはカスタム作業ウィンドウをプロジェクトに追加します。
フォーム領域の場合は、プロジェクトに Outlook フォーム領域 項目を追加します。 詳細については、「方法: フォーム領域を Outlook アドイン プロジェクトに追加する」を参照してください。
操作ウィンドウの場合は、プロジェクトに 操作ウィンドウ コントロール または ユーザー コントロール 項目を追加します。 詳細については、「方法: Word 文書または Excel ブックに操作ウィンドウを追加する」を参照してください。
カスタム作業ウィンドウの場合は、プロジェクトに ユーザー コントロール 項目を追加します。 詳細については、「方法: カスタム作業ウィンドウをアプリケーションに追加する」を参照してください。
[ツールボックス] の [ProjectName WPF ユーザー コントロール] タブから、操作ウィンドウ、フォーム領域、またはカスタム作業ウィンドウのデザイナーに、WPF ユーザー コントロールをドラッグします。
UI 要素内の WPF ユーザー コントロールをホストする ElementHost オブジェクトが自動的に作成されます。
プロジェクトをリビルドします。
ドキュメント レベルのプロジェクト内の文書またはワークシートに WPF コントロールを追加するには
Word または Excel のドキュメント レベルのプロジェクトを開きます。
プロジェクトに ユーザー コントロール (WPF) 項目を追加します。
[ツールボックス] から WPF ユーザー コントロールのデザイン画面に WPF コントロールを追加します。
プロジェクトをビルドします。
ユーザー コントロール 項目 (Windows フォーム ユーザー コントロール) をプロジェクトに追加します。
Windows フォーム ユーザー コントロールのデザイナーを開きます。
[ツールボックス] の [ProjectName WPF ユーザー コントロール] タブからデザイナーに WPF ユーザー コントロールをドラッグします。
Windows フォーム ユーザー コントロール内の WPF ユーザー コントロールをホストする ElementHost オブジェクトが自動的に作成されます。
Windows フォーム ユーザー コントロールを文書またはブックにプログラムで追加するコードを作成します。 詳細については、「実行時に Office 文書にコントロールを追加する」を参照してください。
Note
Windows フォーム ユーザー コントロールをデザイナー上の文書またはワークシートにドラッグすることはできません。
プロジェクトをリビルドします。
ElementHost クラスを使用して WPF コントロールをホストする
Visual Studio には Office ソリューションで Windows フォーム コントロールを使用できるようにする機能がありますが、WPF コントロールを対象とする同様の機能はありません。 たとえば、デザイン時に [ツールボックス] からドラッグするか、実行時にヘルパー メソッドを使用して、Windows フォーム コントロールを文書やワークシートに追加できます。 それに対し、これらの機能は WPF コントロールには使用できません。
WPF コントロールでは、Windows フォーム コントロールまたはフォームと WPF コントロールとの間の統合レイヤーとして ElementHost クラスを使用します。 デザイン時に WPF コントロールをソリューションに追加すると、 ElementHost オブジェクトが自動的に作成されます。
WPF リソース
Windows フォーム コントロールおよびフォーム上での WPF のホストに関連するアーキテクチャおよびデザイン上の問題の詳細については、以下のトピックを参照してください。
Visual Studio でデザイン時に WPF コントロールを Windows フォーム コントロールおよびフォームに追加する方法の詳細については、以下のトピックを参照してください。