Como estender em vez de substituir estilos do WPF

Eu quero usar o tema personalizado no meu aplicativo e, tanto quanto eu sei, posso conseguir isso usando o dicionário de recursos e referenciando-o em App.xaml. Estilos substituiria os padrões como este:

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

Agora, como eu acho, o estilo de etiqueta padrão é substituído pelos mesmos valores, mas todas as fontes de minhas etiquetas são verdes. O problema começa quando quero criar um rótulo em algum lugar novamente. Quando eu quero mudar alguma outra propriedade na minha grade como esta

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

Todos os rótulos dentro da minha grade estão perdendo a cor de primeiro plano e têm um padrão novamente (não ignorei os padrões na etapa anterior?). Depois de algumas tentativas eu descobri que para fazer isso corretamente eu tenho que adicionar outra propriedade paraStyle declaraçãoBasedOn={StaticResource {x:Type Label}}" e funciona. Isso é meio estranho para mim, porque agora terei que repetir o mesmo código BasedOn no aplicativo inteiro e não é assim que funciona o estilo - isso deve ser feito automaticamente! Por exemplo, em estilos HTML + CSS são herdados e mesclados e no WPF eles são substituídos ...

Observe que quando eu não uso nenhum controle de estilos, ainda recebo a aparência de alguns deles (System Themes?). Como posso dizer-lhes para procurar padrões em outro lugar, então, sem qualquer código adicional em estilos, eles pensarão que devem ser verdes por padrão?

Existe alguma maneira eu posso automatizar configuração de propriedade BasedOn? Ou talvez haja melhor para fazer isso de forma excessiva?

questionAnswers(2)

yourAnswerToTheQuestion