首页 > 其他分享 >WPF篇:触发器(Triggers)

WPF篇:触发器(Triggers)

时间:2024-11-26 15:33:58浏览次数:6  
标签:控件 触发器 Triggers TextBlock 按钮 WPF 属性

文章目录


前言

今天来记录一下WPF中的触发器(Triggers),触发器是WPF动态界面设计的灵魂所在,触发器是WPF中实现动态UI和交互的强大工具


一、触发器简介

触发器,顾名思义,就是触发某些动作的条件。在WPF中,它允许我们根据控件的状态或属性值来改变控件的外观和行为,而不需要编写额外的代码

二、开始

1.属性触发器(Trigger)

监控控件上的特定属性,当属性值匹配预设值时,可修改其他属性
例如,当按钮被禁用时,可以改变其背景色
在这里插入图片描述
在这个例子中:

  • 在第一个按钮x:name="btn1"上定义了 Button.Style
  • 在这个 Style 中,添加了一个 Trigger,它会在 IsEnabled 属性为 False 时触发
  • 当触发器被激活时,它会设置按钮的 Background 为浅蓝色,Foreground 为红色

为了测试这个触发器,添加一个按钮点击事件来切换"btn1"按钮的启用/禁用状态。 C# 代码:
在这里插入图片描述

2.事件触发器(EventTrigger)

响应特定事件的发生,如鼠标点击或移入、移出
例如,当鼠标悬停在TextBlock上时,TextBlock颜色变红,鼠标离开TextBlock时,TextBlock颜色变黑

在这里插入图片描述关键点说明:

  • EventTrigger 用于监听特定的路由事件(这里是MouseEnter和MouseLeave)
  • BeginStoryboard 包含要执行的动画
  • Storyboard 可以包含多个动画效果
  • DoubleAnimation 用于数值型属性的动画
  • ColorAnimation 用于颜色属性的动画

3.数据触发器(DataTrigger)

基于绑定的数据源中的值变化来触发动态行为
在这里插入图片描述

标签:控件,触发器,Triggers,TextBlock,按钮,WPF,属性
From: https://blog.csdn.net/m0_46557714/article/details/144057503

相关文章

  • 【WPF】Prism P1
    视频参考:https://www.bilibili.com/video/BV1nY411a7T8 一、元素布局<Windowx:Class="WPF_Practical.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winf......
  • WPF笔记5——动态资源(DynamicResource)
    动态资源(DynamicResource)是WPF中的一种引用资源的方式,即在运行是查找资源。与StaticResource性比,DynamicResource的性能稍差,因为每次要资源时,都要进行查找。如果资源是在引用它的元素之后定义的,或者资源的值在应用程序运行期间发生变化,那么使用DynamicResource引用的员会自动更......
  • WPF笔记4——静态资源(StaticResource)
    在WPF中,资源(Resource)是一种存储和共享对象的方式,可以在应用程序的不同部分之间重用。在WPF中,有两种资源引用方式:静态资源(StaticResource)和动态资源(DynamicResource)静态资源(StaticResource)静态资源,用于在xaml加载时解析并应用资源。它通常用于引用在资源字典中定义的对象,如样式......
  • 界面控件DevExpress WPF v24.2新功能预览 - 支持DateOnly & TimeOnly
    DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。无论是Office办公软件的衍伸产品,还是以数据为中心......
  • WPF RichTextBox MouseLeftButtonUp事件未触发的问题
    在自定义Richtextbox中,给Richtextbox订阅MouseLeftButtonUp事件用于处理自定义任务,程序运行后发现自定义MouseLeftButtonUp未触发。概念WPF中的隧道事件和冒泡事件冒泡事件(Bubbling):这类事件从UI元素触发,并沿着元素树向上传播至根元素。在冒泡阶段,事件会从子元素传递给父......
  • WPF笔记3——x:Name 与 Name
    在WPF中,给Button控件的x:Name和Name属性都可以用来指定控件的名称,如下:点击查看代码<Buttonx:Name="button1">click1</Button><ButtonName="button2">click2</Button>虽然它们在功能上是等价的。但是,它们之间是有差异的。x:Name这个属性是XAML命名......
  • WPF笔记2——路由事件
    WPF的路由事件(RoutedEvents),允许事件在UI元素层次结构中传播。在WPF中,UI元素被组织成一棵树,成为可视化树(VisualTree)。当一个事件(如鼠标点击)在某个控件上触发时,这个事件可以沿着VisualTree向上(向树的根部)或向下(向树的枝叶)传播;如果不广播就是直接事件。路由事件有两个主要的传......
  • WPF笔记1
    WPF是一个与分辨率无关的UI框架,使用基于矢量的呈现引擎,构建用于利用现代图形硬件。1、用vs2022创建一个WPF项目2、打开解决方案资源管理器可以看到VS帮我们创建了下面这些文件:MainWindow.xaml文件是使用xaml标记实现的程序的界面外观,通常是设计人员来编辑;MainWindow.xaml.cs......
  • 【WPF】入门学习
     一、学习资源: WPF中文网:https://www.wpfsoft.com/ VisualStudio2022:https://visualstudio.microsoft.com/zh-hans/vs/ VS2022 激活密钥:https://www.cnblogs.com/soarowl/p/18200602学习参照教程:https://www.bilibili.com/video/BV1mJ411F7zG二、VS2022激活:【帮助】......
  • WPF ListBox UserControl ShowPicture AutoScroll
    //usercontrol//xaml<UserControlx:Class="WpfApp44.ImgTbk"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xm......