使用以下语句是否有区别(或优势):
Style x:Key="{x:Type DataGridCell}" TargetType="{x:Type DataGridCell}"
省略x:Key
属性,是否可行?
我认为,在底层,WPF将键分配给相同的x:Type
。
使用以下语句是否有区别(或优势):
Style x:Key="{x:Type DataGridCell}" TargetType="{x:Type DataGridCell}"
省略x:Key
属性,是否可行?
我认为,在底层,WPF将键分配给相同的x:Type
。
Style.TargetType
的MSDN文档确认了你的猜想:
将TargetType属性设置为TextBlock类型而不设置x:Key将隐式设置x:Key为{x:Type TextBlock}。这也意味着,如果给上述样式一个除{x:Type TextBlock}之外的x:Key值,该样式不会自动应用于所有TextBlock元素。相反,需要显式地将样式应用于TextBlock元素。
如果样式的资源字典键是某一类型,则该样式用作该类型的所有实例的默认样式,除非它们明确指定了另一个样式。由于通常会提供目标类型,因此省略键的语法只是定义默认样式的快捷方式。