x: Key & TargetType в стилях - PullRequest
       34

x: Key & TargetType в стилях

11 голосов
/ 13 ноября 2011

Есть ли разница (или преимущество) для использования этого утверждения:

Style x:Key="{x:Type DataGridCell}" TargetType="{x:Type DataGridCell}"

с пропуском атрибута x:Key?

Я думаю, что WPF назначает ключ для того же x:Type под капотом.

1 Ответ

27 голосов
/ 13 ноября 2011

Документация MSDN для Style.TargetType подтверждает ваши подозрения:

Установка свойства TargetType для типа TextBlock без установки x: Key неявно устанавливает x: Key в {x: Type TextBlock}. Это также означает, что если вы передадите вышеуказанному стилю значение x: Key, отличное от {x: Type TextBlock}, стиль не будет применен ко всем элементам TextBlock автоматически. Вместо этого вам нужно явно применить стиль к элементам TextBlock.

Если ключ словаря ресурсов стиля является типом, этот стиль используется в качестве стиля по умолчанию для всех экземпляров этого типа, которые явно не определяют стиль. Поскольку обычно указывается целевой тип, синтаксис пропуска ключа - это просто ярлык для определения стиля по умолчанию.

...