【发布时间】:2011-12-27 21:05:15
【问题描述】:
使用这种说法有什么不同(或优势):
Style x:Key="{x:Type DataGridCell}" TargetType="{x:Type DataGridCell}"
省略x:Key 属性?
我认为 WPF 在后台将密钥分配给相同的 x:Type。
【问题讨论】:
标签: wpf silverlight xaml targettype
使用这种说法有什么不同(或优势):
Style x:Key="{x:Type DataGridCell}" TargetType="{x:Type DataGridCell}"
省略x:Key 属性?
我认为 WPF 在后台将密钥分配给相同的 x:Type。
【问题讨论】:
标签: wpf silverlight xaml targettype
Style.TargetType 的 MSDN 文档证实了您的怀疑:
将 TargetType 属性设置为 TextBlock 类型不设置 x:Key 会将 x:Key 隐式设置为 {x:Type TextBlock}。这也意味着,如果您为上述 Style 赋予 x:Key 值,而不是 {x:Type TextBlock},则 Style 不会自动应用于所有 TextBlock 元素。相反,您需要将样式显式应用于 TextBlock 元素。
如果样式的资源字典键是类型,则该样式将用作该类型的所有未明确指定样式的实例的默认样式。由于通常会提供目标类型,因此省略键的语法只是定义默认样式的快捷方式。
【讨论】: