11

使用此语句是否有任何区别(或优势):

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

省略x:Key属性?

我认为 WPF 在后台将密钥分配给相同的密钥x:Type

4

1 回答 1

28

MSDN 文档Style.TargetType证实了您的怀疑:

将 TargetType 属性设置为 TextBlock 类型而不设置 x:Key 会将 x:Key 隐式设置为 {x:Type TextBlock}。这也意味着,如果您为上述 Style 赋予 x:Key 值,而不是 {x:Type TextBlock},则 Style 不会自动应用于所有 TextBlock 元素。相反,您需要将样式显式应用于 TextBlock 元素。

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

于 2011-11-13T02:34:14.763 回答