Share via


インライン スタイルおよびテンプレート

Windows Presentation Foundation (WPF) は、Style オブジェクトとテンプレート オブジェクト (FrameworkTemplate サブクラス) を、要素の外観をリソースで定義する方法として提供するので、これらのオブジェクトは複数回数使用できます。 このため、型 Style および型 FrameworkTemplate を取る XAML の属性は、ほとんどの場合、新たにインラインで定義するのではなく、既存のスタイルとテンプレートへのリソース参照を作成します。

インライン スタイルおよびテンプレートの制限

Extensible Application Markup Language (XAML) では、スタイル プロパティとテンプレート プロパティを、技術的に次のいずれかの方法で設定できます。 属性構文を使用して、リソース内で定義されたスタイルを参照できます。たとえば、<object Style="{StaticResource myResourceKey}" .../> とします。 または、プロパティ要素構文を使用して、スタイル インラインを定義できます。次はその例です。

<object>

<object.Style>

<Style .../>

</object.Style>

</object>

属性の使用方法は、さらに一般的です。 インラインで定義され、リソースでは定義されないスタイルは、必然的に、含まれる要素のみに有効範囲が限定されます。また、リソース キーを持たないため、簡単には再利用できません。 一般に、リソースで定義されるスタイルは、汎用性と有用性が高く、コードでのプログラム ロジックとマークアップでのデザインを分離する一般的な Windows Presentation Foundation (WPF) プログラミング モデルの方針により合っています。

通常、その場所でスタイルまたはテンプレートを使用するだけの場合でも、スタイルやテンプレートをインラインで設定する必要はありません。 ほとんどの要素は、スタイルまたはテンプレートを取ることができ、また、コンテンツ プロパティとコンテンツ モデルをサポートします。 スタイルまたはテンプレートで作成する論理ツリーを一度使用するだけの場合、マークアップで、同等の子要素によってコンテンツ プロパティを直接設定するだけの方がよりいっそう簡単です。 これは、スタイル機構とテンプレート機構を完全にバイパスします。

オブジェクトを返すマークアップ拡張機能によって有効となる他の構文も、スタイルおよびテンプレートには可能です。 考えられるシナリオを持つ 2 つの拡張機能として、TemplateBindingBinding があります。

参照

概念

スタイルとテンプレート