次の方法で共有


Blend での空のユーザー コントロールの作成

システム コントロールと同じようにアートボードに追加して再利用できるコンポーネントをデザインする場合は、Blend for Visual Studio でユーザー コントロールを作成します。 ユーザー コントロールは、アプリケーションと同様に、他のコントロール、リソース、およびアニメーション タイムラインを含むことができます。 唯一の違いは、ルート要素が Window や Page ではなく UserControl であることです。

次の手順では、アニメーションを含むユーザー コントロールを作成し、他のドキュメントにインスタンスを作成する方法について説明します。

既存のシステム コントロールを基にして、カスタム コントロールのコードを記述する例については、「カスタム コントロールの作成」を参照してください。

XAML とコード例を含むユーザー コントロールの詳細については、MSDN の「Windows Presentation Foundation」の「コントロールの作成の概要」を参照してください。

ユーザー コントロールを定義するには

  1. Blend で、以下のいずれかを実行します。

    • ユーザー コントロールの .dll ファイルを作成するには、[ファイル] メニューの [新しいプロジェクト] をクリックし、プロジェクトの種類として [WPF コントロール ライブラリ] または [Silverlight コントロール ライブラリ] を選択します。次に、プロジェクト名を指定し、メイン ドキュメントの分離コード ファイルの言語を選択して [OK] をクリックします。 このオプションを使用するのは、ユーザー コントロールを他のユーザーに提供するときにユーザー コントロールの実装を隠す場合、またはユーザー コントロールを別のアプリケーションで描画するときに、テンプレートを作成することでユーザー コントロールの外観を変更できるようにする場合です。

    • 既存のプロジェクトの .xaml ファイルにユーザー コントロールを作成するには、[ファイル] メニューの [新しいアイテム] (Ctrl + N キー) をクリックし、UserControl テンプレートを選択します。次に、ファイル名を設定して、[OK] をクリックします。 このオプションでは、ユーザー コントロールはそれを使用するプロジェクトの中にあるので、簡単に変更できます。 また、.dll への参照を更新する手順を省略できます。

    Blend により、編集できるユーザー コントロールが開きます。

  2. ルート オブジェクトにするパネルの種類を決定します。 既定では、LayoutRoot という Grid が使用されます。この場合は、ユーザー コントロールを別のドキュメントに描画したときに、アニメーションのサイズを変更できます。 既定のパネルを Canvas や他のパネル コントロールに変更するには、[オブジェクトとタイムライン] パネルの LayoutRoot オブジェクトを右クリックし、[レイアウトの種類の変更 ]をポイントして、パネルの名前をクリックします。

  3. [ツール] パネルで、ユーザー コントロールで使用するコントロールか描画ツールを選択し、アートボードに描画します。 [プロパティ] パネルのプロパティを使用して変更します。 ユーザー コントロールには、WPF アプリケーションに含められるものであれば、何でも含めることができます。

  4. [オブジェクトとタイムライン] パネルで、必要なアニメーション タイムラインを作成します。

    例については、「単純なアニメーションの作成」を参照してください。

    注意

    キーフレームを設定するときは、アプリケーション内のすべてのアニメーションのタイミングと、ユーザー コントロールのアニメーションを実行するタイミングを考慮してください。たとえば、スプラッシュ画面のアニメーションの後で、ユーザー インターフェイスが次第に遠ざかっていくアニメーションを表示するとします。それぞれのアニメーションを個別のユーザー コントロールに配置できますが、スプラッシュ画面のアニメーションが完了してから 2 番目のアニメーションが開始されるように設定してください。

    ヒント

    アニメーションを繰り返し開始できるようにする場合は、キーフレームを 0 秒のマークに設定します。たとえば、オブジェクトを左から右に移動し、マウスのダブルクリックでトリガーされるアニメーション タイムラインを作成した場合に、キーフレームを 0 秒のマークに設定しなかったとします。この場合は、1 回目のダブルクリックだけでアニメーションが開始され、2 回目以降では開始されません。これは、このアニメーションがハンドオフ アニメーションだからです。ハンドオフ アニメーションについては、「アニメーション オブジェクト」の「複数の重なり合うアニメーション タイムラインの使用」を参照してください。

  5. [トリガー] パネルでプロパティまたはイベント トリガーを構成し、アプリケーションがユーザーの操作に応答するようにします。

    例については、「Add or modify a trigger」を参照してください。

    注意

    ユーザー コントロールに設定するトリガーを決定するときは、ユーザー コントロールで使用できるようにするすべてのプロパティとトリガーを検討してください。たとえば、アプリケーションに、ボタンと、ユーザー コントロールに含まれたアニメーションがあるとします。Blend では、ボタン自体もユーザー コントロールの一部でない限り、ボタンがクリックされたときにアニメーション タイムラインを開始するユーザー コントロールに対してトリガーを追加することはできません。さらに、2 つのプロパティが同じユーザー コントロール内に存在する場合に限り、プロパティの値の間をデータ バインディングできます。この問題に対処するには、分離コード ファイルのコードを変更するか、ドキュメントにユーザー コントロールを追加した後でユーザー コントロール用のトリガーとアニメーション タイムラインを含むテンプレートを作成します。ユーザー コントロールと分離コード ファイルの例については、MSDN の「Windows Presentation Foundation」の「コントロールの作成の概要」を参照してください。Blend から分離コード ファイルを変更する方法の詳細については、「分離コード ファイルの変更」を参照してください。

  6. ユーザー コントロールの作成が終了したら、ドキュメントのルート オブジェクトのサイズを、必要なだけの大きさになるように変更します。 [オブジェクトとタイムライン] パネルでドキュメント ルートを選択します。次に、[選択内容] ツール JJ170939.2ff91340-477e-4efa-a0f7-af20851e4daa(ja-jp,VS.120).png を使用して、アートボードの青いガイドを見ながらドキュメント ウィンドウのサイズを調節します。

  7. ユーザー コントロールが、マウスのクリックや、コントロール内の空白部分でも反応する場合は、ルート オブジェクトの背景に単色のブラシを設定して、コントロールを別のドキュメントに追加したときに、アートボード上の領域を確保できるようにする必要があります。 [プロパティ] パネルの [ブラシ] カテゴリで、ルート オブジェクトの Background プロパティを [単色ブラシ] JJ170939.3a66ec96-47bb-47fc-8876-6b9456feec3a(ja-jp,VS.120).png に変更します。 背景を非表示にする場合は、Alpha サブプロパティを 0 に変更します。

  8. ユーザー コントロールが特定の高さまたは幅に依存する場合は、[プロパティ] パネルの [レイアウト] カテゴリの [詳細] セクション JJ170939.de239c9d-42ce-4f5e-83b9-5f9924c0431f(ja-jp,VS.120).png にある MinHeight プロパティと MinWidth プロパティを設定します。

  9. ドキュメントに描画するときにユーザー コントロールのサイズを変更できるようにする場合は、ユーザー コントロールのすべてのオブジェクトの [Width] プロパティと [Height] プロパティを [自動] に設定します。

  10. [ファイル] メニューの [すべて保存] をクリックして、ファイルとプロジェクトを保存します。

  11. プロジェクトがコントロール ライブラリの場合は、[プロジェクト] メニューの [プロジェクトのビルド] をクリックする (または Ctrl + Shift + B キーを押す) ことで、プロジェクトをビルドして .dll ファイルを作成します。 .dll ファイルがビルドされ、プロジェクトと同じ場所の \bin\Debug フォルダーに保存されます。

参照

処理手順

既存のオブジェクトからのユーザー コントロールの作成

Blend での他のドキュメントにおけるユーザー コントロールの作成