WPF:更改按钮背景颜色后,自定义样式不起作用

单击按钮后,按钮的背景颜色将始终为红色。我希望“ 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>
czh28690 回答:WPF:更改按钮背景颜色后,自定义样式不起作用

可能的Trigger won't change Background副本

基本上,您在触发器中声明了背景样式值,但随后在按钮的单击处理程序中为背景设置了局部值。本地值将优先于样式值。

一种选择是更改IsPressed触发器的背景,而不是通过点击处理程序执行该操作:

<Trigger Property="IsPressed" Value="True">
    <Setter Property="Background" Value="Red"/>
</Trigger>

从技术上讲,您可以通过其他几种方法来执行此操作,但这可能是最干净的。

本文链接:https://www.f2er.com/3091651.html

大家都在问