【发布时间】:2017-06-15 05:12:12
【问题描述】:
鼠标悬停触发器不适用于 wpf 按钮控件。当鼠标悬停在按钮上时,我想更改按钮的背景和前景。
<Button.Style>
<Style TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border Background="{TemplateBinding Background}" BorderBrush="Black" BorderThickness="1">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</ControlTemplate>
</Setter.Value>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
<GradientStop Color="#FFF2E32F" Offset="0" />
<GradientStop Color="#FF45E815" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="White"/>
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
编辑
我添加了模板,但它只是删除了按钮默认的 MouseOver 触发器,并没有发生我想要的前景和背景样式。
【问题讨论】:
-
你有没有看过这个问题并尝试解决方案? stackoverflow.com/questions/17259280/…
-
@RizkiPratama 是的。但添加模板没有任何改变。这个解决方案只是删除了按钮默认的 MouseOver 触发器,但没有发生我想要的前景和背景样式。
-
当然,当您将默认触发器替换为自定义控件模板时,它会被删除。这是预期的行为。你到底想完成什么?您不能组合两个不同的控件模板。