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
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    《DSP using MATLAB》 示例 Example 9.12
    《DSP using MATLAB》示例 Example 9.11
    《DSP using MATLAB》示例 Example 9.10
    《DSP using MATLAB》示例Example 9.9
    《DSP using MATLAB》示例 Example 9.8
    《DSP using MATLAB》示例Example 9.7
    《DSP using MATLAB》示例 Example 9.6
    《DSP using MATLAB》示例Example 9.5
    《DSP using MATLAB》示例 Example 9.4
    (转载)【C++11新特性】 nullptr关键字
  • 原文地址:https://www.cnblogs.com/sirkevin/p/2715036.html
Copyright © 2011-2022 走看看