11_02_深入浅出话样式

备注:类关系结构图如下:

在这里插入图片描述

样式(Style)

Style 就是指控件的外观行为。构成 Style 最重要的两种严肃是 Setter 和 Trigger,Setter 类帮助我们设置控件的静态外观风格Trigger 类则帮助我们设置控件的行为风格

Style 中的 Setter

我们给属性赋值的时候一般采用“属性名=属性值”的形式,但是 Setter 类是 Property 来指明哪个属性,Value 指明属性的值。

  • 一个例子

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sjjfVn9P-1611043438052)(./images/11_02_01.png )]
在这里插入图片描述
备注:

  • Setters 是 Style 的属性。所以 Style 下面有 Style.Setters.

  • Setters 是 Style 的内容属性,所以也可以写为:
    在这里插入图片描述

  • 设置了 Style 如果不想要,则需要Style="{x:Null}".

  • 如果想设置控件的 ControlTemplate 只需要把 Setter 的 Property 设为 Template 并为 Value 提供一个 ControlTemplate 对象即可。

Style 中的 Trigger
基本 Trigger
  • 一个例子:当 CheckBox 的 IsChecked 属性为 true 的时候前景色和字体会改变。
    在这里插入图片描述
    备注:
    • Trigger 是最基本的触发器,Trigger 也有 Property 和 Value 这两个属性,Property 是 Trigger 关注的属性名称,Value 是触发条件。
    • Trigger 类还有一个 Setters 属性,此属性值是一组 Setter,一旦触发条件满足,这组 Setter 就会被应用,触发条件不再满足后,个属性值会被还原。
MultiTriggr 多条件触发器

在这里插入图片描述
备注:

  • 他意思是必须多个条件同时满足才会触发。
  • 注意结构:
    <Style TargetType="...">
        <Style.Triggers>
            <MultiTrigger>
                <MultiTrigger.Conditions>
                    <Condition Property="..." Value="..." />
                    ...
                </MultiTrigger.Conditions>
                <MultiTriggers.Setters>
                    <Setter Property="..." Value="..." />
                    ...
                </MultiTriggers.Setters>
            </MultiTrigger>
        </Style.Triggers>
    </Style >
    
由数据驱动的 DataTrigger

程序中经常会遇到基于数据执行某些判断的情况,遇到这种情况时可以考虑使用 DataTrigger。DataTrigger 对象的 Binding 属性会把数据源源不断送过来,一旦送过来的值与 Value 属性一致,DataTrigger 即被触发。
在这里插入图片描述
在这里插入图片描述
备注:

  • 为了将控件自己作为数据源,使用了 RelativeSource。
多数据条件触发的 MultiDataTrigger

有时我们会遇到多个数据条件同时满足才能触发变化的需求。
在这里插入图片描述
在这里插入图片描述

由事件驱动的 EvenTrigger

EventTrigger 是触发器中最特殊的一个。首先,它不是由属性值或数据的变化来触发的,而是由事件来触发的;其次,被触发后它并非一组 Setter,而是执行一段动画。因此,UI 层动画效果往往与 EventTrigger 有关。
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值