WPF在触发器中设置边框背景
我需要创建一个触发器,当MouseEnter发生时,它将更改Border background属性。我做了如下工作:WPF在触发器中设置边框背景,wpf,background,triggers,Wpf,Background,Triggers,我需要创建一个触发器,当MouseEnter发生时,它将更改Border background属性。我做了如下工作: <Border Width="20" Height="30" Focusable="True"> <Border.Background> <LinearGradientBrush> <LinearGradientBrush.GradientStops>
<Border Width="20" Height="30" Focusable="True">
<Border.Background>
<LinearGradientBrush>
<LinearGradientBrush.GradientStops>
<GradientStop Color="Aquamarine" Offset="0"/>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Border.Background>
<Border.Style>
<Style TargetType="{x:Type Border}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush>
<LinearGradientBrush.GradientStops>
<GradientStop Color="Aquamarine" Offset="0"/>
<GradientStop Color="Beige" Offset="0.2"/>
<GradientStop Color="Firebrick" Offset="0.5"/>
<GradientStop Color="DarkMagenta" Offset="0.9"/>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
但它不起作用。谢谢。常见错误。您已经直接设置了Border.Background属性,该属性将始终覆盖触发器设置的值。(本地设置的值,样式的优先级很低。) 相反,您应该将“正常”背景移到样式中,如下所示:
<Border>
<Border.Style>
<Style TargetType="Border">
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush>
<LinearGradientBrush.GradientStops>
<GradientStop Color="Aquamarine" Offset="0"/>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Style.Triggers>
<!-- the trigger you showed -->
</Style.Triggers>
</Style>
</Border.Style>
</Border>
没问题,很乐意帮忙。如果此答案解决了您的问题,请将其标记为已接受,这样就不会保留在开放式问题列表中。哦,对不起:)再次感谢!