Как расширить вместо переопределения стилей WPF

Я хочу использовать пользовательскую тему в своем приложении и, насколько я знаю, я могу сделать это, используя словарь ресурсов и ссылаясь на него в App.xaml. Стили переопределяют значения по умолчанию следующим образом:

<Style TargetType="{x:Type Label">
    <Setter Property="Foreground" Value="Green" />
</Style>

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

<Grid.Resources>
    <Style TargetType="{x:Type Label">
        <Setter Property="FontSize" Value="28" />
    </Style>
</Grid.Resources>

Все метки в моей сетке теряют свой основной цвет и снова имеют цвет по умолчанию (разве я не переопределял значения по умолчанию на предыдущем шаге?). После некоторых попыток я обнаружил, что для правильного выполнения этой операции мне нужно добавить еще одно свойствоStyle декларацияBasedOn={StaticResource {x:Type Label}}" и это работает. Это немного странно для меня, потому что теперь мне придется повторять один и тот же код BasedOn во всем приложении, а стиль стилей не работает - это следует делать автоматически! Например, в HTML + CSS стили наследуются и объединяются, а в WPF они заменяются ...

Обратите внимание, что когда я не использую какие-либо стили, элементы управления все еще получают их представление о некоторых (Системные темы?). Как я могу сказать им искать значения по умолчанию где-то еще, чтобы без какого-либо дополнительного кода стилей они думали, что по умолчанию они должны быть зелеными?

Есть ли способ автоматизировать установку свойства BasedOn? Или, может быть, лучше сделать это в общих чертах?

Ответы на вопрос(2)

Ваш ответ на вопрос