WPF在触发器中设置边框背景

WPF在触发器中设置边框背景,wpf,background,triggers,Wpf,Background,Triggers,我需要创建一个触发器,当MouseEnter发生时,它将更改Border background属性。我做了如下工作: <Border Width="20" Height="30" Focusable="True"> <Border.Background> <LinearGradientBrush> <LinearGradientBrush.GradientStops>

我需要创建一个触发器,当MouseEnter发生时,它将更改Border background属性。我做了如下工作:

<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>

没问题,很乐意帮忙。如果此答案解决了您的问题,请将其标记为已接受,这样就不会保留在开放式问题列表中。哦,对不起:)再次感谢!