XAMLStyle样式

1. Setter,设置器。属性值的。我们给属性赋值的时候一般都采用“属 性名=属性值”的形式。Setter类的Property属性用来指明你想为目标的那个属性赋值; Setter类的Value属性则是你提供的属性值。 下面的例子中在Window的资源词典中放置一个针对TextBlock的Style,Style中使用 若干Setter来设定TextBlock的一些属性,这样程序中的TextBlock就会具有统一的风 格,除非你使用{x:Null}显示地清空StyleTrigger,触发器,主要作用是根据Trigger的不同条件基本、多条件、数据、多数 据条件、事件来自动更改外观属性,或者执行动画等操作。触发器比较像事件。事件 一般是由用户操作触发的,而触发器除了有事件触发型的EventTrigger外还有数据变化 触发型的TriggerTrigger类是最基本的触发器。类似于Setter,Trigger也有Property和Value这两 个属性,Property是Trigger关注的属性名称,Value是触发条件。Trigger类还有一个 Setter属性,此属性值是一组Setter,一旦触发条件被满足,这组Setter的“属性—值”就 会被应用,触发条件不在满足后,各属性值会被还原。 下面这个例子中包含一个针对CheckBox的Style,当CheckBox的IsChecked属性为 true的时候前景色和字体会改变。

 

2. 因为Triggers不是Style的内容属性,所以这层标 签不能省略,但Trigger是Trigger的内容属性,所以这层标签是可以省略的MultiTrigger是个容易让人误解的名字,会让人以为是多个Trigger集成在一起,实 际上叫MultiConditionTrigger更合适,因为必须多个条件同时成立时才会被触发。 MultiTrigger比Trigger多了一个Conditions属性,需要同时成立的条件就存储在这个集 合中。 让我们稍微改动一下上面的例子,要求同时满足CheckBox被选中且Content为“正 如我悄悄的来”时才会被触发基于数据执行某些判断情况,遇到这种情况时我们可以考虑使用 DataTrigger。DataTrigger对象的Binding属性会把数据源源不断送过来,一旦送来的 值与Value属性一致,DataTrigger即被触发是DataTrigger的Binding。为了将控件自己作为数据源, 我们使用了RelativeSource,初学者经常认为“不明确指出Source的值Binding就会将控 件自己作为数据的来源”,这是错误的,因为不名曲指出Source时Binding会把控件的 DataContext属性作为数据源而非把控件自身当作数据源。Binding的Path被设置为 Text.Length,即我们关注的是字符串的长度。长度是一个具体的数字,如何基于这个长度 值做判断呢?这就用到了Converter多个数据条件同时满足时才能触发变化的需求,此时可以考虑使 用获取输入值并强制转换 int textLength = (int)value; //三目运算符:判断数值长度是否>6 ? 是返回true : 否返回比如有这样一个需求:用户界面上使用ListBox显示了一列Student数据,当Student对 象同时满足ID为Name为Tom的时候,条目的高亮显示。

不是由属性值或数据的变化来触发 而由事件来触发;其次,被触发后它并非应用一组Setter,而是执行一段动画。因此,UI 层的动画效果往往与 EventTrigger事件触发,另一个由MouseLeave事件触发。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值