[英]C# WPF Style: One Button Mouseover - One Button keep Image
我有2个按钮,其中一个应该在鼠标悬停时更改背景颜色。 鼠标悬停时,其他人也应保留其背景图片。
我的问题是第二个也获得了鼠标悬停效果,并且图像被覆盖了:(
<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
<Button Content="0" Name="num0" Foreground="White" Background="#FF2598CE" BorderBrush="#FF24779D" Style="{StaticResource hover}" />
2.Button
<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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.