Подтвердить что ты не робот

В чем разница для TargetType = "{x: Тип Button}" и TargetType = "Button"?

В чем разница для

TargetType="{x:Type Button}"

и

TargetType="Button"
4b9b3361

Ответ 1

Я думаю, нет никакой разницы, поскольку разработчик XAML применяет встроенные преобразователи типов, которые преобразуют строковое значение "Button" в System.Type, которое равно Button.

Однако следует использовать явную спецификацию Type, используя x:Type.

Другое место, где требуется спецификация явного Type, - это когда мы наследуем Styles с помощью BasedOn, там неявная строка Type не работает.

например.

Это будет работать

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

Но не это...

 BasedOn="{StaticResource Button}"

как здесь, он попытается найти ресурс с помощью ключа "Button". Но в спецификации x:Type, поскольку мы уже указали явный Button Type, поиск статического ресурса будет происходить для Style, который предназначен для Button.