有什么区别
TargetType="{x:Type Button}"
和
TargetType="Button"
答案 0 :(得分:40)
我想没有区别,因为XAML设计器应用内置类型转换器将字符串值“Button”转换为System.Type
Button
。
但是,应该练习使用x:Type
来使用显式类型规范。
需要明确Type
规范的另一个地方是,当我们使用Styles
继承BasedOn
时,隐式字符串Type
将不起作用。
e.g。
这样可行
BasedOn="{StaticResource {x:Type Button}}"
但不是这个......
BasedOn="{StaticResource Button}"
因为它会尝试使用Key“Button”搜索资源。但是在x:Type
规范中,由于我们已经指定了显式Button
Type
,因此针对Style
的{{1}}将会发生对静态资源的搜索。 }。