我已经成功地制作了一个有圆角的按钮,但当鼠标悬停时似乎不能更改其背景颜色。透明度会发生变化,但背景颜色不会变。
<Style TargetType="Button" x:Key="FlatButtonStyle">
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="Cursor" Value="Hand" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border Name="border" BorderThickness="0" BorderBrush="Black" Background="{TemplateBinding Background}" CornerRadius="4">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Orange"/>
<Setter Property="Opacity" Value="0.91" />
</Trigger>
</Style.Triggers>
</Style>
正如您所看到的,我不确定为什么透明度可行而其他方法不行。但是,我认为这可能与实际按钮本身存在冲突:
<Button Style="{StaticResource FlatButtonStyle}" Content="Sign In" VerticalAlignment="Top" Margin="10,267,10,0" Background="#FF3650F3" Foreground="White" Height="29" Command="{Binding SignIn}">
有办法覆盖这个吗?我的目的是创建一个通用的,圆角按钮模板,并将背景色更改为橙色。但是我希望能够设置默认背景色,就像我在我的按钮中展示的那样。
#FFFFA500
,而不是使用Orange
颜色名称? - Geoff James<Setter Property="OverridesDefaultStyle" Value="True" />
,需要放在你的Style
声明中。 - Geoff James