Como altero o estilo padrão de um botão sem o WPF reverter do Aero para o Classic?

Adicionei PresentationFramework.Aero aos meus dicionários mesclados App.xaml, como em ...

<Application
    x:Class="TestApp.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary
                    Source="/PresentationFramework.Aero;component/themes/Aero.NormalColor.xaml" />
                <ResourceDictionary
                     Source="pack://application:,,,/WPFToolkit;component/Themes/Aero.NormalColor.xaml" />
                <ResourceDictionary
                    Source="/CommonLibraryWpf;component/ResourceDictionaries/ButtonResourceDictionary.xaml" />
                    <!-- Note, ButtonResourceDictionary.xaml is defined in an external class library-->
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
</Application>

Estou tentando modificar a aparência padrão dos botões apenas um pouco. Coloquei esse estilo no meu ButtonResourceDictionary:

<Style TargetType="Button">
    <Setter Property="Padding" Value="3" />
    <Setter Property="FontWeight" Value="Bold" />
</Style>

Todos os botões agora têm o preenchimento correto e o texto em negrito, mas eles parecem "Clássico", não "Aero". Como faço para corrigir esse estilo para que meus botões pareçam Aero, mas também tenham essas pequenas alterações? Eu preferiria não ter que definir oStyle propriedade para cada botão.

Atualizar

Eu deveria ter mencionado isso em primeiro lugar, mas se eu tentar usarBasedOn, como mostrado abaixo, recebo umaStackOverflowException:

<Style BasedOn="{StaticResource {x:Type Button}}" TargetType="{x:Type Button}">
    <Setter Property="Padding" Value="3" />
    <Setter Property="FontWeight" Value="Bold" />
</Style>

Isso normalmente funcionaria, mas não com os dicionários do Aero mesclados. Se eu comentar esses dicionários, a exceção desaparecerá.

Atualização 2

Se eu adicionar umx:Key atributo e defina manualmente o estilo, ele funciona corretamente (estilo Aero com preenchimento e negrito), mas como eu disse, prefiro que o estilo seja aplicado automaticamente globalmente a todos os botões.

Atualização 3

Acabei de descobrir uma nova ruga. No meu aplicativo, ButtonResourceDictionary.xaml é colocado em uma biblioteca de classes (ou seja, em um projeto externo). Se eu mover esse arquivo para uma pasta local, tudo funcionará bem. Portanto, o problema parece ser uma interação ruim causada pela referência a vários dicionários de recursos externos. Estou corrigindo meu snippet de código App.xaml (acima) para refletir que ButtonResourceDictionary é realmente definido externamente.

questionAnswers(3)

yourAnswerToTheQuestion