我有两个按钮,其中一个应该更改鼠标悬停时的背景颜色。另一个在鼠标悬停时也应该保留其背景图像。
我的问题是,第二个也得到鼠标悬停效果,图像被覆盖:(
<Window.Resources>
<Style x:Key="hover" TargetType="Button">
<Setter Property="Background" Value="#FF2598CE" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#FF24779D" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
1.按钮
<Button Content="0" Name="num0" Foreground="White" Background="#FF2598CE" BorderBrush="#FF24779D" Style="{StaticResource hover}" />
2.按钮
<Button Content="" Name="up" BorderBrush="#FF24779D">
<Button.Background>
<ImageBrush ImageSource="/Rechner;component/Images/btn_up.jpg" />
</Button.Background>
</Button>
感谢您的帮助
第二个按钮的默认模板意味着它的行为将类似于Windows按钮(例如,在鼠标悬停时不显示背景图像)。您可能需要提供自己的模板。
在另一个问题中有一个很好的解释,可能会帮助你开始。
这也可能有所帮助。
我可能会这样做:
<Button Content="" Name="up" Template="{DynamicResource BackgroundButton}" >
<Button.Background>
<ImageBrush ImageSource="image.png" />
</Button.Background>
<Button.Resources>
<ControlTemplate x:Key="BackgroundButton" TargetType="Button">
<Border Name="border" BorderThickness="1" BorderBrush="Black" Background="{TemplateBinding Background}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" TargetName="border">
<Setter.Value>
<ImageBrush ImageSource="image.png" Opacity="0.5" />
</Setter.Value>
</Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Button.Resources>
</Button>