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

有什么区别

TargetType="{x:Type Button}" 

 TargetType="Button" 

我想没有什么区别,因为XAMLdevise器应用内置types转换器,将string值“Button”转换为Buttontypes的System.Type

但是,应该练习使用x:Type使用显式的Type规范。

另一个需要显式Type地方是当我们使用BasedOninheritanceStyles时,隐含的stringType不会工作。

例如

这将工作

  BasedOn="{StaticResource {x:Type Button}}" 

但不是这个…

  BasedOn="{StaticResource Button}" 

因为在这里它会尝试用键“button”来search资源。 但是在x:Type规范中,因为我们已经指定了明确的Button Type ,所以静态资源的search将会发生在针对ButtonStyle中。