¿Cómo modifico el estilo predeterminado de un botón sin que WPF vuelva de Aero a Classic?

He agregado PresentationFramework.Aero a mis diccionarios combinados de App.xaml, como en ...

<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>

Estoy tratando de modificar ligeramente la apariencia predeterminada de los botones. Puse este estilo en mi ButtonResourceDictionary:

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

Todos los botones ahora tienen el relleno correcto y el texto en negrita, pero se ven "Clásicos", no "Aero". ¿Cómo soluciono este estilo para que todos mis botones se vean Aero pero también tengan estos pequeños cambios? Preferiría no tener que configurar elStyle propiedad para cada botón.

Actualizar

Debería haber mencionado esto en primer lugar, pero si trato de usarBasedOn, como se muestra a continuación, obtengo unStackOverflowException:

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

Esto normalmente funcionaría, pero no con los diccionarios Aero fusionados. Si comento esos diccionarios, la excepción desaparece.

Actualización 2

Si agrego unx:Key Atributo y establecer manualmente el estilo, funciona correctamente (estilo Aero con relleno y negrita), pero como dije, preferiría que el estilo se aplique automáticamente de forma global a todos los botones.

Actualización 3

Acabo de descubrir una nueva arruga. En mi aplicación, ButtonResourceDictionary.xaml se coloca en una biblioteca de clases (es decir, en un proyecto externo). Si muevo este archivo a una carpeta local, todo funciona bien. Entonces, el problema parece ser una mala interacción causada por hacer referencia a varios diccionarios de recursos externos. Estoy corrigiendo mi fragmento de código App.xaml (arriba) para reflejar que ButtonResourceDictionary se define externamente.

Respuestas a la pregunta(3)

Su respuesta a la pregunta