WPF Border触发器不生效问题

++关键词:++

++WPF 触发器不生效 触发器使用 鼠标移入变色++

目的:

鼠标进入Border后,此Border的背景色发生变化

错误写法:

复制代码
 <!--不设置背景的话只有在子控件上方才会触发事件-->
    <Border CornerRadius="5"
          
    >
        <Border.Style>
            <Style TargetType="Border">
                <Style.Triggers>
                    <Trigger Property="IsMouseOver"
                                  Value="True">
                        <Setter Property="Background"
                                Value="#828385" />
                    </Trigger>
                </Style.Triggers>
            </Style>
        </Border.Style>
</Border>

不设置背景的话只有在子控件上方才会触发事件,是什么意思呢,如下图

只有鼠标在红色框框内才会触发背景色变化

加上背景色之后:

复制代码
 <Border CornerRadius="5"
          Background="Black"
    >
        <Border.Style>
            <Style TargetType="Border">
                <Style.Triggers>
                    <Trigger Property="IsMouseOver"
                                  Value="True">
                        <Setter Property="Background"
                                Value="#828385" />
                    </Trigger>
                </Style.Triggers>
            </Style>
        </Border.Style>
</Border>

在定义后面设置属性:Background="Black"

这种情况会导致整个触发器失效,无论鼠标在哪里都不能改变背景色:

正确写法:

复制代码
  <!--不设置背景的话只有在子控件上方才会触发事件-->
    <Border CornerRadius="5"
    >
        <Border.Style>
            <Style TargetType="Border">
                <!--必须在这里setter才可以生效-->
                <Style.Setters>
                    <Setter Property="Background"
                            Value="Black" />
                </Style.Setters>
                <Style.Triggers>
                    <Trigger Property="IsMouseOver"
                                  Value="True">
                        <Setter Property="Background"
                                Value="#828385" />
                    </Trigger>
                </Style.Triggers>
            </Style>
        </Border.Style>
</Border>
复制代码
总结:必须用Setters设置背景色属性才可以满足要求
相关推荐
Poetinthedusk8 小时前
WPF动画制作分享
wpf·动画
张人玉9 小时前
WPF HTTPS 通信示例使用说明
数据库·网络协议·http·c#·wpf
张人玉9 小时前
WPF HTTPS 通信示例代码分析笔记
笔记·https·wpf
廋到被风吹走9 小时前
【Spring】ThreadLocal详解 线程隔离的魔法与陷阱
java·spring·wpf
熊猫钓鱼>_>10 小时前
多智能体协作:构建下一代高智能应用的技术范式
人工智能·ai·去中心化·wpf·agent·多智能体·multiagent
要记得喝水10 小时前
某公司WPF面试题(含答案和解析)--1
wpf
源之缘-专注WPF开发1 天前
全栈开发实战:WPF+FFmpeg+GIS,打造工业级雷达探测终端
ffmpeg·wpf·gis
张人玉1 天前
C# WPF 折线图制作(可以连接数据库)
数据库·c#·wpf·sugar
闲人编程1 天前
OpenTelemetry分布式追踪
分布式·wpf·trace·追踪·open telemetry·codecapsule
张人玉1 天前
C# WPF 折线图制作笔记(LiveCharts 库)
笔记·c#·wpf·折线图·linechart