您只需要在
Trigger
属性上设置一个普通的 IsEnabled
即可设置按钮的 Background
。 ControlTemplate 中的 Grid 和 Rectangle 是多余的。
<SolidColorBrush x:Key="BackgroundEnabled" Color="#FFADD2CC"/>
<SolidColorBrush x:Key="BackgroundDisabled" Color="#FF8D9B98"/>
<Style x:Key="ButtonStyle" TargetType="Button">
...
<Setter Property="Background" Value="{StaticResource BackgroundEnabled}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Background}">
<ContentPresenter
Margin="{TemplateBinding Padding}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Background"
Value="{StaticResource BackgroundDisabled}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>