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设置背景色属性才可以满足要求
相关推荐
玉面小君2 天前
从 WPF 到 Avalonia 的迁移系列实战篇6:Trigger、MultiTrigger、DataTrigger 的迁移
wpf·avalonia
招风的黑耳3 天前
Java生态圈核心组件深度解析:Spring技术栈与分布式系统实战
java·spring·wpf
lfw20193 天前
WPF 数据绑定模式详解(TwoWay、OneWay、OneTime、OneWayToSource、Default)
wpf
Magnum Lehar3 天前
3d wpf游戏引擎的导入文件功能c++的.h实现
3d·游戏引擎·wpf
FuckPatience4 天前
WPF Telerik.Windows.Controls.Data.PropertyGrid 自定义属性编辑器
wpf
almighty274 天前
C#WPF控制USB摄像头参数:曝光、白平衡等高级设置完全指南
开发语言·c#·wpf·usb相机·参数设置
军训猫猫头4 天前
12.NModbus4在C#上的部署与使用 C#例子 WPF例子
开发语言·c#·wpf
我要打打代码4 天前
在WPF项目中使用阿里图标库iconfont
wpf
拾忆,想起5 天前
Redisson 分布式锁的实现原理
java·开发语言·分布式·后端·性能优化·wpf
weixin_464078075 天前
wpf依赖注入驱动的 MVVM实现(含免费源代码demo)
wpf