В чем разница для TargetType = "{x: Тип Button}" и TargetType = "Button"?
В чем разница для
TargetType="{x:Type Button}"
и
TargetType="Button"
Ответ 1
Я думаю, нет никакой разницы, поскольку разработчик XAML применяет встроенные преобразователи типов, которые преобразуют строковое значение "Button" в System.Type, которое равно Button.
Однако следует использовать явную спецификацию Type, используя x:Type.
Другое место, где требуется спецификация явного Type, - это когда мы наследуем Styles с помощью BasedOn, там неявная строка Type не работает.
например.
Это будет работать
BasedOn="{StaticResource {x:Type Button}}"
Но не это...
BasedOn="{StaticResource Button}"
как здесь, он попытается найти ресурс с помощью ключа "Button". Но в спецификации x:Type, поскольку мы уже указали явный ButtonType, поиск статического ресурса будет происходить для Style, который предназначен для Button.
Ответ 2
Обратитесь к этому Blog-, у него есть довольно хорошее объяснение того, как использовать стиль на другом уровне.