オブジェクト プロパティをテンプレートに反映させる

テンプレートを使用すると、コントロールの独自の外観を設定できます。たとえば、同じテンプレートを使用する [RadioButton] コントロールは、すべて外観が同じになります。しかし、これらの [RadioButton] コントロールの色だけを変更したい場合があります。このような場合は、テンプレート バインドを使用すると、カスタム コントロールをデザインできると同時に、アプリケーションにコントロールを組み込むときに、必要な変更を加えることができます。

たとえば、Microsoft Expression Blend に付属している Zune3D サンプルでは、アプリケーションの下端にあるラジオ ボタンは形とハイライトが同じですが、色が違います。これは、テンプレートにあるオブジェクトの 1 つのオブジェクトの色を、そのテンプレートを使用する [RadioButton] コントロールの背景の色にバインドしているからです。

Zune3D サンプルの [RadioButton] オブジェクト

Ee341447.92a0f9b6-81a7-44c3-9e6d-c17e29df7204(JA-JP,Expression.30).png

テンプレートによくバインドするプロパティは、次のとおりです。

プロパティ名

Background

Brush

Fill

Brush

Stroke

Brush

BorderBrush

Brush

Foreground

Brush

BorderThickness

Number

Width

Number

Height

Number

[OpacityMask]、[Font]、[FontSize]、[LayoutTransform]、[RenderTransform] などのプロパティは、テンプレートにバインドする必要がありません。これらのプロパティは、テンプレート内の要素に自動的に反映されます。また、テンプレートに [ContentPresenter] オブジェクトがある場合は、[Content] プロパティと [Text] プロパティをテンプレートにバインドする必要がありません。

オブジェクトのプロパティをテンプレートで流用するには

  1. コントロールのテンプレートを作成するか、既存のテンプレートを開きます。

    詳細については、「システム コントロールのスタイル処理のための再利用可能なテンプレートの作成」を参照してください。

  2. [オブジェクトとタイムライン] パネルで、テンプレートにバインドするプロパティを含むオブジェクトを選択します。

  3. [プロパティ] パネルで、テンプレートにバインドするプロパティを見つけ、[詳細プロパティ オプション] Ee341447.12e06962-5d8a-480d-a837-e06b84c545bb(JA-JP,Expression.30).png をクリックし、[テンプレート バインド] をポイントしてから、テンプレートにバインドするプロパティをクリックします。

    たとえば、Expression Blend の Zune3D サンプルでは、ボタンの内側の [Fill] プロパティは、テンプレートを使用する [RadioButton] コントロールの [Background] プロパティにバインドされています。

    Ee341447.8ea5510a-4aed-4699-aac1-c7f3f178f5af(JA-JP,Expression.30).png

    [プロパティ] パネルでは、テンプレートにバインドされているプロパティに黄色い枠が表示されます。

    Ee341447.26f3da48-43af-437f-a064-c981ced5f317(JA-JP,Expression.30).png

  4. 次に、このテンプレートを使用する別のオブジェクトを描画するときに、テンプレートにバインドしたプロパティ (前の例の Background プロパティ) を変更すると、テンプレート内の Fill プロパティに変更が反映されます。

    Ee341447.66d08eb4-1962-4e7f-b753-ac9e4b307106(JA-JP,Expression.30).png

テンプレート バインドを削除するには

  1. コントロールのテンプレートを編集中に、[オブジェクトとタイムライン] パネルで、テンプレート バインドされたプロパティを含むオブジェクトを選択します。

  2. [プロパティ] パネルで、テンプレートにバインドされたプロパティを見つけ、[詳細プロパティ オプション] Ee341447.e3343378-f63e-4d8f-9847-97c1a58aadc5(JA-JP,Expression.30).png、[リセット] の順にクリックします。

    プロパティを別の値に設定できるようになります。

関連項目

概念

テンプレートをサポートするコントロールのスタイル処理

一般的な Silverlight コントロールのスタイル処理のヒント

WPF 簡易スタイルのスタイル処理のヒント