当前位置: 首页 > news >正文

WPF—Triggers触发器

WPF—Triggers触发器

介绍 :

WPF提供了一个丰富和灵活的图形渲染框架,触发器(Triggers)是其中一个重要的功能。触发器能够用来控制或改变UI元素的属性、样式、甚至行为.        

触发器类型

Property Triggers

当某个依赖属性达到某个值时触发(列如: 点击或鼠标移入)

Data Triggers

当绑定到的数据满足某个条件时触发

Event Triggers

当某个事件被触发时进行相应的行为(用于动画操作)

MultiTriggers 和 MultiDataTriggers

当多个条件被满足时触发

Property Triggers实例 当某个依赖属性达到某个值时触发(列如: 点击或鼠标移入) 

介绍:

当UI元素的某个属性达到特定值时,Property Triggers会被触发。

// 当组件被点击时触发(TargetType: 设置相对应的标签类型)
<Button Content="点击我"><Button.Style><Style TargetType="{x:Type Button}"><Style.Triggers><Trigger Property="Click" Value="True"><Setter Property="Background" Value="Yellow"/></Trigger></Style.Triggers></Style></Button.Style>
</Button>

Data Triggers实例  当绑定到的数据满足某个条件时触发

介绍:

DataTrigger是一种在数据绑定的值满足特定条件时改变控件样式的触发器。DataTrigger的工作方式类似于常规的Trigger,但它们关联的是绑定的数据属性而不是依赖属性。

// 当TextBox标签的text属性绑定的数据为111时触发,将背景颜色改为pink
(TargetType: 设置相对应的标签类型)<Window.Resources><Style TargetType="TextBox"><Style.Triggers><DataTrigger Binding="{Binding Text, RelativeSource={RelativeSource Self}}" Value="111"><Setter Property="Background" Value="Pink"/></DataTrigger></Style.Triggers></Style></Window.Resources><Grid><TextBox Width="200" Height="30" Margin="20"/></Grid>

Event Triggers实例: 当某个事件被触发时进行相应的行为(用于动画操作)

介绍:

用于触发一系列的动画或者行为。

// 当鼠标点击该标签时 触发动画效果
<Button Content="点击我"><Button.Triggers><EventTrigger RoutedEvent="Button.Click"><BeginStoryboard><Storyboard><!-- 动画效果 --></Storyboard></BeginStoryboard></EventTrigger></Button.Triggers>
</Button>

MultiTriggers 和 MultiDataTriggers实例  当多个条件被满足时触发

介绍:

当需要多个条件同时满足时使用。

// 当鼠标悬停在按钮上并且按钮处于可用状态时,按钮的背景变为粉红色。
(x:Key:用于设置触发器的键   |   TargetType : 用于设置对应的标签类型)
<Style x:Key="multiTriggerExample" TargetType="{x:Type Button}"><Style.Triggers><MultiTrigger><MultiTrigger.Conditions><Condition Property="IsMouseOver" Value="True"/><Condition Property="IsEnabled" Value="True"/></MultiTrigger.Conditions><Setter Property="Background" Value="Pink"/></MultiTrigger></Style.Triggers>
</Style>// 在button标签中调用该触发器的键
<Button Content="测试按钮" Style="{StaticResource multiTriggerExample}">
</Button>


http://www.mrgr.cn/news/2489.html

相关文章:

  • 【数据结构】二叉搜索树(二叉排序树)、平衡二叉树、红黑树、B树、B+树详解
  • Excel“取消工作表保护”忘记密码并恢复原始密码
  • EGL函数翻译--eglCreatePbufferSurface
  • ​​JVM三:JVM垃圾回收机制(GC)
  • 基于JSP的美食推荐管理系统
  • SSH协议与OpenSSH配置详解(配置密钥对验证实验)
  • LDR6020双盲插便携显示器方案:重塑连接体验的新标杆
  • 【软件测试】功能测试理论基础
  • 使用 Python和 SQLite 打造一个简单的数据库浏览器
  • 【等保测评】Ngnix模拟测评
  • Python青少年简明教程:数据类型和操作符
  • 2.Lab One —— Util
  • Spring Boot
  • 如何免费获取乡镇级边界数据geoJson数据
  • 制作语音数据集: 爬取B站音视频+基于whisper语音识别标注
  • Python实现台阶问题/斐波纳挈
  • 已解决centos7 yum报错:cannot find a valid baseurl for repo:base/7/x86_64的解决方案
  • linux(ARM)常用MAC设置命令
  • TCP协议和UDP协议有什么区别?被攻击怎么处理?
  • GitHub | 记录上传到GitHub上面的md文件内容的图片无法显示的问题