次の方法で共有


方法: カスタム コントロールとデザイン時アセンブリを配置する

[このドキュメントはプレビューのみを目的としており、以降のリリースで変更される可能性があります。プレースホルダーとして空白のトピックが含まれています。]

カスタムの WPF および Silverlight コントロール用のデザイン環境を作成する場合、通常、類似のワークフローに従います。 このトピックでは、カスタム コントロールとデザイン時アセンブリを配置する方法について説明します。

注意

カスタムのデザイン時環境の実装方法の例については、「WPF and Silverlight Designer Extensibility Samples (WPF デザイナーおよび Silverlight デザイナーの機能拡張のサンプル)」を参照してください。

デザイン時アセンブリの作成および配置

デザイン時アセンブリを作成および配置するには

  1. WPF コントロールまたは Silverlight コントロールを実装します。

  2. デザイン時実装の対象となる WPF Designer フレームワークのバージョンを決定し、デザイン時アセンブリを読み込むデザイナー ツールを決定します。 たとえば、WPF Designer フレームワークの 4.0 バージョンを対象とし、Visual Studio 2010 以降と Expression Blend 3 以降に固有のデザイン環境を作成できます。

  3. 各デザイン時アセンブリに対応するプロジェクトを作成します。 「カスタム コントロールとデザイン時アセンブリの配置」で説明されている名前付け規則に従って、プロジェクトの名前を付けます。 たとえば、手順 2. のシナリオでプロジェクトに次の名前を付けることができます。

    名前付け規約

    Description

    <ControlLibrary>.Design.4.0.dll

    共通のデザイン時実装

    <ControlLibrary>.Expression.Design.4.0.dll

    Expression Blend に固有のメタデータを使用して共通のデザイン時実装をオーバーライドします。

    <ControlLibrary>.VisualStudio.Design.4.0.dll

    Visual Studio に固有のメタデータを使用して共通のデザイン時実装をオーバーライドします。

  4. 各デザイン時プロジェクトのビルド出力を共通フォルダーに移動します。 このフォルダーは、カスタム コントロールが含まれている同じフォルダーにしたり、Design という名前のサブフォルダーにしたりすることができます。

  5. IProvideAttributeTable インターフェイスを実装するクラスを各デザイン時プロジェクトに追加します。 多くの場合、このクラスの名前は Metadata または RegisterMetadata です。 このクラスでは、カスタム デザイン時に実装される機能を指定します。 ツールボックスの [アイテムの選択] ダイアログ ボックスに表示されるクラスも指定します。

  6. 各デザイン時アセンブリに ProvideMetadataAttribute を適用し、それを使用して対応する RegisterMetadata クラスを指定します。

  7. AssemblyFoldersEx 登録プロシージャを使用して、コントロールとそれに関連付けられているデザイン時アセンブリを登録します。 AssemblyFoldersEx は、サードパーティ ベンダーでサポートされているフレームワークの各バージョンのパスを格納するレジストリの位置です。 このレジストリの位置でデザイン時の解決を調べると、参照アセンブリを確認できます。 レジストリ スクリプトでツールボックスに表示するコントロールを指定できます。 詳細については、「カスタム コントロールとデザイン時アセンブリの配置」を参照してください。

参照

Reference

AttributeTable

ProvideMetadataAttribute

概念

カスタム コントロールとデザイン時アセンブリの配置

デザイン時メタデータの提供

その他の技術情報

Visual Studio 拡張機能の配置

WPF デザイナーの機能拡張について

基本的な機能拡張という概念

WPF and Silverlight Designer Extensibility Samples (WPF デザイナーおよび Silverlight デザイナーの機能拡張のサンプル)