使用此声明是否有任何区别(或优势):
Style x:Key="{x:Type DataGridCell}" TargetType="{x:Type DataGridCell}"
省略x:Key
属性?
我认为WPF会将密钥分配给同一个x:Type
。
答案 0 :(得分:27)
Style.TargetType
的MSDN文档证实了您的怀疑:
将TargetType属性设置为TextBlock类型而不设置x:Key隐式将x:Key 设置为{x:Type TextBlock}。这也意味着如果您为上面的Style赋予除{x:Type TextBlock}以外的任何内容的x:Key值,则Style将不会自动应用于所有TextBlock元素。相反,您需要明确地将样式应用于TextBlock元素。
如果样式的资源字典键是一种类型,则该样式将用作该类型的所有未明确指定样式的实例的默认样式。由于通常提供目标类型,因此省略键的语法只是定义默认样式的快捷方式。