インライン スタイルおよびテンプレートInline Styles and Templates

Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) 提供Styleオブジェクトおよびオブジェクトのテンプレート (FrameworkTemplateサブクラス) リソース内の要素の視覚的な外観を定義する方法、として使用できるように複数回です。provides Style objects and template objects (FrameworkTemplate subclasses) as a way to define the visual appearance of an element in resources, so that they can be used multiple times. このため、属性XAMLXAML型を受け取るStyleFrameworkTemplateインライン新しいものを定義するのではなく、ほとんどの場合に既存のスタイルとテンプレートにリソース参照を作成します。For this reason, attributes in XAMLXAML that take the types Style and FrameworkTemplate almost always make resource references to existing styles and templates rather than define new ones inline.

インライン スタイルおよびテンプレートの制限事項Limitations of Inline Styles and Templates

Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML)スタイルとテンプレートのプロパティは、2 つの方法のいずれかで技術的には設定できます。In Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML), style and template properties can technically be set in one of two ways. たとえば、リソース内で定義されたスタイルを参照する属性の構文を使用できます<オブジェクトStyle="{StaticResourcemyResourceKey}" .../>します。You can use attribute syntax to reference a style that was defined within a resource, for example <objectStyle="{StaticResourcemyResourceKey}" .../>. または、インスタンスのスタイルをインラインを定義するプロパティ要素構文を使用することができます。Or you can use property element syntax to define a style inline, for instance:

< object >< object >

< object .Style>< object .Style>

< Style .../>< Style .../>

</ object .Style></ object .Style>

</ object ></ object >

属性の使用法が一般的です。The attribute usage is much more common. スタイルはインラインで定義で定義されていないリソースにのみ、含まれる要素のスコープは必ずしも、再使用できませんに簡単にリソース キーがあるないためです。A style that is defined inline and not defined in resources is necessarily scoped to the containing element only, and cannot be re-used as easily because it has no resource key. リソースによって定義されたスタイルの汎用性と有用では、一般とが高く、一般的なWindows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)モデルのコードでのプログラム ロジックを分離する、マークアップでのデザイン原則をプログラミングします。In general a resource-defined style is more versatile and useful, and is more in keeping with the general Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) programming model principle of separating program logic in code from design in markup.

通常は、スタイルまたはテンプレートのインラインを設定する理由の場所にそのスタイルまたはテンプレートを使用する場合でも、Usually there is no reason to set a style or template inline, even if you only intend to use that style or template in that location. スタイルまたはテンプレートが実行できるほとんどの要素では、コンテンツのプロパティとコンテンツ モデルもサポートします。Most elements that can take a style or template also support a content property and a content model. 論理ツリーをのみを使用している場合は、スタイルまたはテンプレートで 1 回作成する、だけコンテンツ プロパティを直接マークアップで同等の子要素を格納するより簡単になります。If you are only using whatever logical tree you create through styling or templating once, it would be even easier to just fill that content property with the equivalent child elements in direct markup. これは、バイパス、スタイルとテンプレート メカニズム完全します。This would bypass the style and template mechanisms altogether.

オブジェクトを返すマークアップ拡張機能によって有効になっているその他の構文は、スタイルとテンプレートのこともできます。Other syntaxes enabled by markup extensions that return an object are also possible for styles and templates. 考えられるシナリオがある場合、このような 2 つの拡張子を含めるTemplateBindingBindingします。Two such extensions that have possible scenarios include TemplateBinding and Binding.

関連項目See also