我有一个带背景图片的wppf按钮。
当我将鼠标悬停在背景上时将显示空白并显示一个按钮。
如何禁用鼠标效果?
<Button BorderBrush="{x:Null}" Content="Reset" BorderThickness="0"Foreground="White" Focusable="False">
<Button.Background>
<ImageBrush ImageSource="button.png" />
</Button.Background>
答案 0 :(得分:13)
以下是我如何禁用按钮上的可视鼠标悬停效果。我离开了一些设置只是为了让你感觉如何玩触发器和东西,随意尝试!
<Style TargetType="Button" x:Key="ImageButton" BasedOn="{StaticResource {x:Static ToolBar.ButtonStyleKey}}">
<Setter Property="FocusVisualStyle" Value="{x:Null}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Name="border"
BorderThickness="{TemplateBinding BorderThickness}"
Padding="{TemplateBinding Padding}"
BorderBrush="{TemplateBinding BorderBrush}"
CornerRadius="5"
Background="{TemplateBinding Background}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderBrush" Value="Gainsboro" />
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Opacity" Value="0.25" />
<Setter Property="BorderBrush" Value="Transparent" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
编辑:使用“BasedOn”+设置FocusVisualStyle为null(前2行)摆脱鼠标悬停效果。其他一切都只是例子。我在那里添加了一个边框,以便通过触发器进行播放(因为我想要一个自定义鼠标悬停效果)。
答案 1 :(得分:8)
在ControlTemplate
的{{1}}中,背景属性将被触发器覆盖。
您可以重做整个Button
并省略背景更改,或者只是将图片添加为ControlTemplate
的内容,以避免所有这些复杂情况:
Button
或者如果你还需要那里的文字:
<Button.Content>
<Image Source="button.png" />
</Button.Content>