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设置背景色属性才可以满足要求
相关推荐
一见已难忘13 小时前
基于 Harmony 6.0 应用的宠物寄养预约系统实现
wpf·宠物
fl17683113 小时前
基于C#WPF实现的内存加速球清理类似360加速球内存清理
开发语言·c#·wpf
李高钢14 小时前
【WPF】高级 UI 与性能优化实战:从卡顿到丝滑
ui·性能优化·wpf
Chris _data1 天前
WPF 上位机开发学习笔记 - 第四天
笔记·学习·wpf
李高钢1 天前
除了 IDE,C#/WPF 开发者每天离不开的 10 个工具
ide·c#·wpf
李高钢2 天前
用 JetBrains Rider 写 WPF 的 15 个高效技巧:从 VS 转过来也值得看
wpf
李高钢2 天前
【WPF】MVVM 与数据绑定实战:从原理到完整项目
wpf
李高钢3 天前
【WPF】从 Avalon 到 .NET 10:WPF 平台演进史与特性全览
.net·wpf
李高钢3 天前
WPF MVVM Light 入门:从零到Hello World
c#·wpf
李高钢3 天前
WPF MVVM Light(三):RelayCommand 命令与 Messenger 消息
前端·c#·wpf