次の方法で共有


インライン スタイルとテンプレート

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 つの拡張機能には、TemplateBindingBindingがあります。

関連項目