Take a look at the default button style template for the Aero theme:
<ControlTemplate TargetType="{x:Type ButtonBase}"> <theme:ButtonChrome Name="Chrome" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" RenderDefaulted="{TemplateBinding Button.IsDefaulted}" RenderMouseOver="{TemplateBinding IsMouseOver}" RenderPressed="{TemplateBinding IsPressed}" SnapsToDevicePixels="True"> <ContentPresenter Margin="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True"/> </theme:ButtonChrome> <ControlTemplate.Triggers> <Trigger Property="IsKeyboardFocused" Value="True"> <Setter TargetName="Chrome" Property="RenderDefaulted" Value="True"/> </Trigger> <Trigger Property="ToggleButton.IsChecked" Value="True"> <Setter TargetName="Chrome" Property="RenderPressed" Value="True"/> </Trigger> <Trigger Property="IsEnabled" Value="False"> <Setter Property="Foreground" Value="#ADADAD"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate>
As you can see, mouse colors and pressed colors are defined as bindings in the ButtonChrome RenderMouseOver and RenderPressed . The ButtonChrome method ButtonChrome developed; they take precedence over any values ββfrom the Background property. Therefore, unfortunately, the only way to override the background color of a pressed or highlighted button is to override its template.
source share