x:Key 和 TargetType 在样式中的作用

13

使用以下语句是否有区别(或优势):

Style x:Key="{x:Type DataGridCell}" TargetType="{x:Type DataGridCell}"

省略x:Key属性,是否可行?

我认为,在底层,WPF将键分配给相同的x:Type

1个回答

30

Style.TargetType的MSDN文档确认了你的猜想:

将TargetType属性设置为TextBlock类型而不设置x:Key将隐式设置x:Key为{x:Type TextBlock}。这也意味着,如果给上述样式一个除{x:Type TextBlock}之外的x:Key值,该样式不会自动应用于所有TextBlock元素。相反,需要显式地将样式应用于TextBlock元素。

如果样式的资源字典键是某一类型,则该样式用作该类型的所有实例的默认样式,除非它们明确指定了另一个样式。由于通常会提供目标类型,因此省略键的语法只是定义默认样式的快捷方式。


好的,我在一些优秀的示例中看到了这个,并且这帮助了我,谢谢 Rick。 - Manuel
10
@Manuel: 如果这个答案对您有帮助,为什么不接受它呢 - Robert Koritnik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接