【发布时间】:2016-08-19 15:41:46
【问题描述】:
我已经设法制作了一个圆形边框按钮,但是当鼠标悬停时我似乎无法更改其背景颜色。不透明度会改变,但背景颜色不会改变。
<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>
如您所见,我不确定为什么 opacity 有效,但另一个无效。但是,我认为这与实际按钮本身存在冲突:
<Button Style="{StaticResource FlatButtonStyle}" Content="Sign In" VerticalAlignment="Top" Margin="10,267,10,0" Background="#FF3650F3" Foreground="White" Height="29" Command="{Binding SignIn}">
有没有办法覆盖它?我要做的是创建一个通用的圆形按钮模板,将背景更改为橙色。但我希望能够设置默认背景,就像我在按钮中显示的那样。
【问题讨论】:
-
您是否尝试过使用十六进制值,而不是使用
Orange颜色名称?#FFFFA500之类的东西? -
@GeoffJames 是的,我有,但什么都没有。
-
你在这里看过这个答案吗?:stackoverflow.com/a/17259993/6240567 - 我认为关键部分可能是
<Setter Property="OverridesDefaultStyle" Value="True" />进入你的Style声明