それを試してみてください
<Window.Resources>
<Style x:Key="MyButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Background" Value="Red"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<ContentPresenter x:Name="PART_Content"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
TextElement.Foreground="{TemplateBinding Foreground}"></ContentPresenter> </Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Black"/>
<Setter Property="Foreground" Value="White"/>
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
次のようにカスタムスタイルを適用します
<Button Content="Hover me" Style="{StaticResource MyButtonStyle}" Height="30" Width="100"/>
その理由は、ボタンのデフォルトの Aero スタイルにあります。ControlTemplate で定義されたクロムがあり、さまざまなマウス イベントで独自の動作をします。そのため、トリガー呼び出しを上書きします。
したがって、希望する結果を得るには、Button のデフォルトの ControlTemplate をオーバーライドする必要があります。