все в заголовке:
Я читал не один раз, задавая такой стиль:
<Style TargetType="TextBox">...</Style>
был примерно эквивалентен:
<Style x:Key="{x:Type TextBox}" TargetType="TextBox">...</Style>
(последний раз в комментарии по другому вопросу)
оба должны применять стиль ко всем текстовым полям в приложении (если они, конечно, помещены в ресурсы приложения)
но я попробовал оба в моих приложениях, и работает только второй с установленным x: Key.
это кажется вполне логичным для меня, поскольку первый не знает, где будет применяться без какого-либо свойства x: Key, но тогда какая точка первого синтаксиса?
Изменить: пример кода в моем приложении, который отлично работает:
<Style x:Key="{x:Type ComboBoxItem}" TargetType="{x:Type ComboBoxItem}">
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
</Style>
и код, который не имеет значения:
<Style TargetType="{x:Type ComboBoxItem}">
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
</Style>
Я написал это, чтобы избавиться от проблем с привязкой, которые вы получаете с помощью comboBoxItems, когда вы манипулируете существующими компонентами ComboBox. И первый код работает нормально, а второй - нет.
вы можете легко это увидеть, установив для параметра horizontalContentAlignment вправо
Изменить 2: Этот код просто помещается в словарь ресурсов в моем App.xaml. И замена TargetType = "{x: Тип ComboBoxItem}" с TargetType = "ComboBoxItem" не имеет никакого значения
Изменить 3: Я просто понял, что забыл уточнить что-то важное (извините за это): хотя стили определены в xaml, я фактически добавляю элементы управления в макет в моем коде поскольку они добавляются динамически. Может быть, где проблема...