TargetType =“{x:Type Button}”和TargetType =“Button”有什么区别?

时间:2012-11-26 03:25:09

标签: wpf silverlight xaml

有什么区别
TargetType="{x:Type Button}"

TargetType="Button"

1 个答案:

答案 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}}将会发生对静态资源的搜索。 }。