单击按钮后,按钮的背景颜色将始终为红色。我希望“ isMouseOver”触发器仍然有效。
任何人都可以帮助我解决这个问题吗?
"/questions/6449340/how-to-get-base-domain-from-the-url-in-javascript/58887093"
<Style TargetType="{x:Type Button}">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid Background="{TemplateBinding Background}">
<ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="LightBlue"></Setter>
</Trigger>
<Trigger Property="IsMouseOver" Value="False">
<Setter Property="Background" Value="LightGray"></Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
答案 0 :(得分:1)
可能的Trigger won't change Background副本
基本上,您在触发器中声明了背景样式值,但随后在按钮的单击处理程序中为背景设置了局部值。本地值将优先于样式值。
一种选择是更改IsPressed触发器的背景,而不是通过点击处理程序执行该操作:
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="Red"/>
</Trigger>
从技术上讲,您可以通过其他几种方法来执行此操作,但这可能是最干净的。