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设置背景色属性才可以满足要求
相关推荐
周杰伦fans12 小时前
WPF TextBlock 中 Run 元素实战——从密码强度检测到 MVVM 绑定
wpf
largecode1 天前
座机号码认证如何操作?申请热线实名名片,树立统一官方客服形象
linux·sql·华为·c#·.net·wpf·harmonyos
小满Autumn1 天前
WPF 入门:XAML 语法、布局与数据绑定
microsoft·c#·.net·wpf
小满Autumn2 天前
WPF 进阶:样式、触发器与控件模板
c#·.net·wpf
她说彩礼65万2 天前
WPF视觉树 逻辑树
wpf
贺国亚2 天前
分布式并发
分布式·wpf
Iawfy_2 天前
WPF的ComboBox绑定Enum枚举
wpf
她说彩礼65万3 天前
WPF TemplateBinding
wpf
她说彩礼65万3 天前
WPF 三大模板类型 四大属性名称
wpf
无心水3 天前
金融系统数据一致性之战:联机交易与批量作业的冲突处理完全指南
人工智能·金融·wpf·批量作业·顶尖架构师·联机交易·金融架构师