【转】【WPF】WPF样式(Style)—触发器
样式(Styles)由三部分构成:设置器(Setter)、触发器(Triggers)、资源(Resources)。
(1)触发器,让样式的使用更加准确、灵活和高效。
(2)触发器(Triggers)主要分为三类,属性触发器(检查从属属性即WPF元素自身属性)、数据触发器(检查任意可绑定的属性)、事件触发器(用于监听事件)。
属性触发器
检查从属属性的值,即WPF元素自身属性。比如按钮的内容、字体的大小、颜色等等。
<Window.Resources><Style TargetType="Button"><Style.Triggers><Trigger Property="Content" Value="按钮"><Setter Property="ToolTip" Value="这是一个按钮"> </Setter></Trigger></Style.Triggers></Style></Window.Resources>
多属性触发器
<Window.Resources><Style TargetType="Button"><Style.Triggers><Trigger Property="Content" Value="按钮"><Setter Property="ToolTip" Value="这是一个按钮"></Setter></Trigger><Trigger Property="Content" Value="Button"><Setter Property="ToolTip" Value="This is a button"></Setter></Trigger></Style.Triggers></Style></Window.Resources>
多条件属性触发器
<Window.Resources><Style TargetType="Button"><Style.Triggers><MultiTrigger><!--条件列表--><MultiTrigger.Conditions><Condition Property="Content" Value="按钮"></Condition><Condition Property="Visibility" Value="Visible"></Condition></MultiTrigger.Conditions><!--样式--><Setter Property="ToolTip" Value="这是一个可见按钮"></Setter></MultiTrigger></Style.Triggers></Style></Window.Resources>
数据触发器
可以检查任意可绑定的属性,比如CLR对象属性、XPath声明等。相对于属性触发器,数据触发器通常用来检查不可见的对象属性。
<Window.Resources><Style TargetType="Button"><Style.Triggers><DataTrigger Binding="{Binding Path=Name}" Value="李宝亨"><Setter Property="Foreground" Value="Tomato"/></DataTrigger></Style.Triggers></Style></Window.Resources><Grid><Button Content="{Binding Path=Name}" Height="23" Margin="103,94,120,84" Name="button1" Width="75"/></Grid>
定义的Person类
public partial class MainWindow : Window{public MainWindow(){InitializeComponent();DataContext = new Person("李宝亨","21"); }class Person{string _Name;public string Name{get { return _Name; }set { _Name = value; }}string _Age;public string Age{get { return _Age; }set { _Age = value; }}public Person(string name,string age){_Name = name;_Age = age;}}}
多条件数据触发器
<Window.Resources><Style TargetType="Button"><Style.Triggers><MultiDataTrigger><!--条件列表--><MultiDataTrigger.Conditions><Condition Binding="{Binding Path=Name}" Value="李宝亨"/><Condition Binding="{Binding Path=Age}" Value="21"/></MultiDataTrigger.Conditions><Setter Property="Foreground" Value="Tomato"/></MultiDataTrigger></Style.Triggers></Style></Window.Resources><Grid><Button Content="{Binding Path=Name}" Height="23" Margin="103,94,120,84" Name="button1" Width="75"/></Grid>
事件触发器
事件触发器用来监听事件。当一个事件发生时,事件触发器就会引发相关的动画事件来进行响应。
<Window.Resources><Style TargetType="Button"><Style.Triggers><!--事件触发器--><EventTrigger RoutedEvent="MouseEnter"><BeginStoryboard><Storyboard><DoubleAnimation Storyboard.TargetProperty="Opacity" From="1" To="0.1" Duration="0:0:3"></DoubleAnimation></Storyboard></BeginStoryboard></EventTrigger></Style.Triggers></Style></Window.Resources>
原文地址:http://tianzengyan.blog.163.com/blog/static/1675840912012920105524490/
转载于:https://www.cnblogs.com/mqxs/p/5489237.html
【转】【WPF】WPF样式(Style)—触发器相关推荐
- WPF的样式(Style)继承
WPF的样式(Style)继承 参考自http://www.cnblogs.com/SkyD/archive/2008/08/09/1264294.html,非常感谢. 用Style的BaseOn属性 ...
- WPF入门(六)样式Style
wpf提供了一种类似css的对象- style,但是比css更强大.它支持直接设定属性,更改呈现模板,触发器,事件触发等.MSDN描述如下: MSDN 可以在从 FrameworkElement 或 ...
- wpf之样式属性、事件、触发器
wpf的样式可以把属性一样的设置写在样式里面,这样可以减少代码量. 举个简单的例子: <Window x:Class="WpfPictureClick.MainWindow" ...
- wpf Combobox 样式的问题
wpf Combobox 样式的问题 <!-- Combobox--><Style x:Key="ComboBoxReadonlyToggleButton" Ta ...
- 愤怒者系列(一) WPF引用样式文件
今天我们说一下wpf引用样式资源文件. wpf的样式控制分为行内,页内,和样式文件.而样式资源文件又分为程序内的样式文件和页内的样式文件. 我们今天讲的是引用的样式文件,因为可以切换样式文件来改变主题 ...
- WPF ComboBox样式
一.样式的样子就是这样的 二.样式Style - 不可编辑请设置 属性为ReadOnly=true属性 1 <ResourceDictionary xmlns="http://sche ...
- WPF: WPF 中的 Triggers 和 VisualStateManager
在之前写的这篇文章 WPF: 只读依赖属性的介绍与实践 中,我们介绍了在 WPF 自定义控件中如何添加只读依赖属性,并且使其结合属性触发器 (Trigger) 来实现对控件样式的改变.事实上,关于触发 ...
- React 项目----内联样式style的使用 (12)
在此我们之前学习了react的基本的语法,对于页面我们还经常关注的是页面的样式,那么react 项目中,我们应该如何使用样式 首先我们来做一个简单的页面一个评论的列表 模拟数据: commentLis ...
- css vue 内联_vue 内联样式style中的background
在我们使用vue开发的时候 有很多时候我们需要用到背景图 这个时候会直接使用 内联样式 直接把你拿到的数据拼接上去 注意 在vue中直接使用style时 花括号一定别忘记 还有就是你的url一定 ...
- GeoServer样式(style)设置
GeoServer样式style设置 GeoServer Style定义 CSS Style CSS Style安装 CSS Style定义 应用自定义样式 利用其它软件配图并将Style导入GeoS ...
最新文章
- python计算学习_跟老齐学Python之用Python计算
- WeifenLuo.WinFormsUI.Docking
- OpenMPI 安装
- tensorflow随笔-读取多个文件
- 算法系列:5分钟了解哈希算法
- 【转载】印制板设计的流程及注意事项
- SpringBoot 中 @Transactional 的使用
- Linux redis常用命令
- java map集合如何遍历效率高 java中Map遍历的方式
- Redis中SDS简单动态字符串
- 解放军--女“黑客”
- perf top 实时分析 CPU 使用情况
- 英雄联盟全球总决赛历届冠军名单
- 读后感:【许岑—如何成为有效学习的高手】
- LabVIEW编更改研华数字板卡中DIO方向 例程与相关资料
- debian9.6安装和卸载新立得软件包管理器
- H 指数 (citations[index] > h 才能符合条件)
- 二叉树经典问题-通过前序和后序序列重建二叉树
- 古董电脑室:2019日记簿(二)
- 云笔记Leanote,超级好用的一款开源云笔记