WPF计时器

简介: WPF计时器
<StackPanel Orientation="Horizontal" Height="40" >
      <TextBox Width="200" Height="30" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Text="00:00:00" Name="Text111" FontSize="26"/>
      <Button Width="150" Height="30" Margin="5,0" Click="Button_Click" FontSize="24">开始</Button>
      <Button Width="150" Height="30" Margin="5,0"  FontSize="24" Click="Button_Click_2">暂停</Button>
      <Button Width="150" Height="30" Margin="5,0"  FontSize="24" Click="Button_Click_1">停止</Button>                
</StackPanel>
public partial class MainWindow : Window
    {
        enum State
        {
            Start, Pause, End
        }      
        //状态
        State _state=State.End;
        //计时
        TimeSpan _timeSpan=new TimeSpan(0,0,0,0);
        public MainWindow()
        {
            InitializeComponent();
            var t = new DispatcherTimer();
            t.Interval = new TimeSpan(0, 0, 0, 1);
            t.Tick += OnTimer;
            t.IsEnabled = true;
            t.Start();     
        }
        //时钟回调
        void OnTimer(object sender,EventArgs e)
        {
            switch(_state)
            {
                case State.Start:
                    {
                        _timeSpan += new TimeSpan(0, 0, 0, 1);
                    }
                    break;
                case State.Pause:
                    {
                    }
                     break;
                case State.End:
                    {
                        _timeSpan = new TimeSpan();
                    }
                    break;
            }
            var time = string.Format("{0:D2}:{1:D2}:{2:D2}", _timeSpan.Hours, _timeSpan.Minutes, _timeSpan.Seconds);
            Text111.Text = time;
        }
        //停止
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            _state = State.End;
        }
        //开始
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            _state = State.Start;
        }
        private void Button_Click_2(object sender, RoutedEventArgs e)
        {
            _state = State.Pause;
        }
    }


目录
相关文章
|
C# 前端开发
WPF加载等待动画
原文:WPF加载等待动画 原文地址:https://www.codeproject.com/Articles/57984/WPF-Loading-Wait-Adorner 界面遮罩 等待动画全局颜色 ...
3439 0
|
API C# UED
wpf的PixelLab.Wpf切换效果
wpf的PixelLab.Wpf切换效果
C# WPF定时器
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来。我们都知道计算机技术发展日新月异,速度惊人的快,你我稍不留神,就会被慢慢淘汰!因此:每日不间断的学习是避免被淘汰的不二法宝。
1883 0
|
C# Windows
在VS2005中设置WPF中自定义按钮的事件
原文:在VS2005中设置WPF中自定义按钮的事件 上篇讲了如何在Blend中绘制圆角矩形(http://blog.csdn.net/johnsuna/archive/2007/08/13/1740781.aspx),本篇继续下一步骤,如何自定义按钮的事件。
1044 0
|
C# 前端开发
WPF之动画
原文:WPF之动画 线性关键帧、不连续关键帧动画: ...
645 0
|
C#
WPF 窗口
原文:WPF 窗口 在WPF中,经常需要对窗口进行设置,下面讲讲常用的几个设置。 窗口样式 1、无边框窗口 无边框透明窗体 设置 WindowStyle="None"--无边框,如果需要其它按钮,如缩小、放大、收缩、关闭按钮,可以自定义 AllowsTransparency="True"-...
740 0
|
C#
WPF的Timer控件的使用
原文:WPF的Timer控件的使用 通过System.Threaing.Timer控件来实现“初始加载页面时为DataGrid的模版列赋初始值” System.Threaing.Timer的用法: 步骤1: //声明定时器 System.
1141 0
|
C#
WPF中的动画
原文:WPF中的动画                                                               WPF中的动画                                                                                  周银辉动画无疑是WPF中最吸引人的特色之一,其可以像Flash一样平滑地播放并与程序逻辑进行很好的交互。
860 0
|
C# 前端开发
WPF动画
原文:WPF动画 1、基本动画。 WPF提供了一个更高级的模型,通过该模型可以只关注动画的定义,而不考虑它们的渲染方式,这个模型基于依赖项属性基础架构,本质上,WPF动画只不过是在一段时间间隔内修改依赖项属性值的一种方式。
1765 0
|
C#
WPF 获得DataGridRow和 DataGridCell的方法
原文:WPF 获得DataGridRow和 DataGridCell的方法 原文地址 简介   在WPF中,DataGrid控件并没有提供访问其DataGridRow或者DataGridCell的方法。
2064 0