内联样式和模板

Windows Presentation Foundation (WPF)提供 Style 对象和模板对象(FrameworkTemplate 子类)作为定义资源中元素的视觉外观的方法,以便可以多次使用它们。 因此,XAML 中类型 StyleFrameworkTemplate 的属性几乎总是对已有样式和模板进行资源引用,而不是内联定义新的样式和模板。

嵌入式样式和模板的限制

在可扩展应用程序标记语言(XAML)中,可通过以下两种方式之一设置样式和模板属性。 可以使用属性语法引用资源中定义的样式,例如,<对象Style="{StaticResourcemyResourceKey}" .../>。 也可以使用属性元素语法来定义嵌入式样式,例如:

<对象>

<对象.Style>

<Style.../>

</对象.Style>

</对象>

属性用法更为常见。 内联定义而未在资源中定义的样式只能应用于包含它的元素,因为它没有资源键,因此不能轻易重复使用。 通常,资源定义的样式更通用且有用,并且更符合将代码中的程序逻辑与标记设计分开的一般 Windows Presentation Foundation (WPF) 编程模型原则。

通常没有理由设置样式或模板内联,即使你只打算在该位置使用该样式或模板。 大多数可以采用样式或模板的元素也支持内容属性和内容模型。 如果仅使用通过样式或模板创建的任何逻辑树,那么仅用直接标记中的等效子元素填充该内容属性将会更容易。 这将完全绕过样式和模板机制。

由返回对象的标记扩展启用的其他语法也可用于样式和模板。 有两种可能的情况的扩展包括 TemplateBindingBinding

另请参阅