次の方法で共有


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

Visual Studio の Office 開発ツールを使用して作成されたソリューションは、Windows フォーム コントロールと直接連携するように設計されていますが、ソリューションで WPF コントロールを使用することもできます。 Windows Presentation Foundation (WPF) は、ユーザー インターフェイスを設計するための Windows フォームの代替手段です。 WPF では、拡張アプリケーション マークアップ言語 (XAML) と呼ばれるマークアップ言語を使用して、UI、メディア、ドキュメントを組み込むための新しい手法を提供します。 詳細については、「WPF の 概要」を参照してください。

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

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

  • ドキュメントレベルのカスタマイズにおけるドキュメントとワークシート。

  • ドキュメント レベルのカスタマイズにおけるアクション パネル。

  • VSTO アドインのカスタム作業ウィンドウ。

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

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

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

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

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

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

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

    既定では、WPF ユーザー コントロール デザイナーが開いている場合、 ツールボックス には WPF コントロールのみが含まれます。

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

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

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

    Visual Studio によって、UI 要素で WPF ユーザー コントロールをホストする ElementHost オブジェクトが自動的に作成されます。

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

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

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

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

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

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

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

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

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

    Visual Studio は、Windows フォーム ユーザー コントロールで WPF ユーザー コントロールをホストする ElementHost オブジェクトを自動的に作成します。

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

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

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

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

Visual Studio には、Office ソリューションで Windows フォーム コントロールを使用するのに役立つ機能が用意されていますが、WPF コントロールに同様の機能は用意されていません。 たとえば、デザイン時に ツールボックスからコントロールをドラッグするか、ヘルパー メソッドを使用して実行時に Windows フォーム コントロールをドキュメントやワークシートに追加できます。 ただし、これらのツールは WPF コントロールでは使用できません。

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

WPF リソース

Windows フォーム コントロールとフォームで WPF コントロールをホストするためのアーキテクチャとデザインの問題の詳細については、次のトピックを参照してください。

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