zoukankan      html  css  js  c++  java
  • WPF触发器之数据触发器(A)

    WPF触发器

        属性触发器——当依赖属性的值改变时调用。

        数据触发器——当普通.NET属性的值改变时调用。

        事件触发器——当路由事件被触发时调用。

    1. 数据触发器示例:数字从0~9计数,当数字变为8时候,数字变化成红色并加粗进行显示。

        0 -> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 9 ->0

    2. 新建WPF项目,项目名称:DataTriggerDemo。

    3. 新增Views文件夹,右键Views文件夹,新增用户控件Timer.xaml;并在页面中加入Button和Textblock控件。

       

       

    4. 新增ViewModels文件夹,右键ViewModels文件夹,新增类TimerViewModel.cs;在代码中增加StartCommand命令和DisplayNumber属性。

       

     1 private int displayNumber = 0;
     2 public int DisplayNumber
     3 {
     4     get { return displayNumber; }
     5     set
     6     {
     7         displayNumber = value;
     8         NotifyPropertyChanged("DisplayNumber");
     9     }
    10 }
    11 
    12 private ICommand startCommand;
    13 public ICommand StartCommand
    14 {
    15     get
    16     {
    17         if (startCommand == null)
    18         {
    19             startCommand = new RelayCommand(param =>
    20             {
    21                 Start();
    22             }, param => true);
    23         } return startCommand;
    24     }
    25 }

    5. 在TimerViewModel中增加计数方法。

     1 private void Start()
     2 {
     3     new Timer(new TimerCallback(param =>
     4     {
     5         DisplayNumber++;
     6         if (DisplayNumber == 10)
     7         {
     8             DisplayNumber = 0;
     9         }
    10     })).Change(0, 1000);
    11 }

    6. 在Timer.xaml页面增加数据触发器代码。

     1 <UserControl.Resources>
     2     <Style TargetType="TextBlock">
     3         <Style.Triggers>
     4             <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self},Path=Text}" Value="8">
     5                 <Setter Property="Foreground"
     6                         Value="Red"></Setter>
     7                 <Setter Property="FontWeight"
     8                         Value="Bold"></Setter>
     9                 <Setter Property="FontSize"
    10                         Value="29"></Setter>
    11             </DataTrigger>
    12         </Style.Triggers>
    13     </Style>
    14 </UserControl.Resources>

    7. 运行效果。

       

    点击这里下载源代码。

    作者:backslash112 (美国CS研究生在读/机器人工程师)
    出处:http://sirkevin.cnblogs.com
    GitHub:https://github.com/backslash112
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    数据结构化与保存
    爬取基础2
    爬取校园新闻首页的新闻的详情,使用正则表达式,函数抽离
    爬虫基础
    中文词频
    使用docker搭建rabbitmq集群
    centos安装rabbitmq
    git查看仓库地址以及修改远程仓库
    网易云邮箱账号
    jmeter提取登录cookie实现跨线程组保持登录
  • 原文地址:https://www.cnblogs.com/sirkevin/p/2715036.html
Copyright © 2011-2022 走看看