也许解决方案将通过更改按钮的KeyPressed 事件来解决。
查看此代码示例:
At first, create a button:
<ButtonContent="ButtonPressed" Name="buttonPressed" />
然后您应该将Resources 添加到您的 main.xaml 中,这将告诉按钮它的外观(如网页中的 CSS)。
<Window.Resources>
<Style TargetType="Button">
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="Foreground" Value="White" />
<Setter Property="Background" Value="{StaticResource GlowFX}" />
<Setter Property="Width" Value="150" />
<Setter Property="Height" Value="35" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource GlowFXPressed}" />
</Trigger>
</Style.Triggers>
</Style>
使用Background 属性,我正在更改按钮的默认背景。 Trigger 在您打开按钮时启动,并且如您所见,它再次更改背景,使用这两种样式注意:将它们粘贴在按钮样式之前:
<RadialGradientBrush x:Key="GlowFX" GradientOrigin=".5,1" Center=".5,1">
<GradientStop Offset="0" Color="#990000FF"></GradientStop>
<GradientStop Offset=".3" Color="#660000DD"></GradientStop>
<GradientStop Offset="1" Color="#33000000"></GradientStop>
</RadialGradientBrush>
<RadialGradientBrush x:Key="GlowFXPressed" GradientOrigin=".5,1" Center=".5,1">
<GradientStop Offset="0" Color="#990000FF"></GradientStop>
<GradientStop Offset=".3" Color="#880000DD"></GradientStop>
<GradientStop Offset="1" Color="#33000000"></GradientStop>
</RadialGradientBrush>
这适用于事件IsMoseOver,但我认为按键按下时也是如此。只看一点点;)
正如 Rachel 所说,您应该重写整个模板,并告诉 Press 事件如何处理样式。