インライン スタイルとテンプレート
Windows Presentation Foundation (WPF) は、リソース内の要素の視覚的な外観を定義して複数回使用できるように、Style オブジェクトとテンプレート オブジェクト (FrameworkTemplate サブクラス) を提供します。 このため、型を Style し、FrameworkTemplate を受け取る XAML の属性は、ほとんどの場合、新しいスタイルとテンプレートをインラインで定義するのではなく、既存のスタイルとテンプレートへのリソース参照を行います。
インライン スタイルとテンプレートの制限事項
Extensible Application Markup Language (XAML) では、スタイルとテンプレートのプロパティは、技術的には 2 つの方法のいずれかで設定できます。 属性構文を使用して、リソース内で定義されたスタイル (たとえば、myResourceKey
<
オブジェクト>
<
オブジェクト.Style>
<
Style
.../>
</
オブジェクト.Style>
</
オブジェクト>
属性の使用方法の方がはるかに一般的です。 インラインで定義され、リソースで定義されていないスタイルは、必ずしも含まれる要素のみにスコープが設定され、リソース キーがないため、簡単に再利用することはできません。 一般に、リソース定義のスタイルは汎用性が高く便利であり、コード内のプログラム ロジックをマークアップのデザインから分離するという一般的な Windows Presentation Foundation (WPF) プログラミング モデルの原則に従っています。
通常、その場所でそのスタイルまたはテンプレートのみを使用する場合でも、スタイルまたはテンプレートをインラインで設定する理由はありません。 スタイルまたはテンプレートを使用できるほとんどの要素では、コンテンツ プロパティとコンテンツ モデルもサポートされます。 スタイル設定またはテンプレートを使用して作成した論理ツリーを 1 回だけ使用する場合は、そのコンテンツ プロパティに直接マークアップ内の同等の子要素を入力する方がさらに簡単です。 これにより、スタイルとテンプレートのメカニズムが完全にバイパスされます。
オブジェクトを返すマークアップ拡張によって有効になっているその他の構文は、スタイルとテンプレートでも使用できます。 考えられるシナリオを持つこのような 2 つの拡張機能には、TemplateBinding と Bindingがあります。
関連項目
.NET Desktop feedback