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;
        }
    }


目录
相关文章
|
API C# UED
wpf的PixelLab.Wpf切换效果
wpf的PixelLab.Wpf切换效果
122 0
C# WPF定时器
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来。我们都知道计算机技术发展日新月异,速度惊人的快,你我稍不留神,就会被慢慢淘汰!因此:每日不间断的学习是避免被淘汰的不二法宝。
1909 0
|
C#
WPF之托盘图标的设定
原文:WPF之托盘图标的设定 首先需要在项目中引用System.Windows.Forms,System.Drawing; using System; using System.Collections.
1403 0
|
C# Windows
制作简单的WPF时钟
原文:制作简单的WPF时钟 在很早之前,我曾经写过一个GDI+的时钟,见“C#时钟控件 (C# Clock Control)” http://blog.csdn.net/johnsuna/archive/2006/02/13/597746.aspx及“使用C#编写LED样式时钟控件”(http://blog.csdn.net/johnsuna/archive/2006/02/14/598867.aspx),进入WPF时代了,如何用WPF绘制一个时钟呢? 先看效果: 上面显示的是时间值,下面是图形版的时钟。
960 0
|
C#
制作WPF时钟之2
原文:制作WPF时钟之2 前段时间写了一篇“制作简单的WPF时钟”,今天再制作了一个更漂亮的WPF时钟,目前仅完成了设计部分,准备将它制作成一个无边框窗体式的时钟。
974 0
|
C# 前端开发
WPF之动画
原文:WPF之动画 线性关键帧、不连续关键帧动画: ...
660 0
|
C#
WPF获取窗口句柄
原文:WPF获取窗口句柄 通过WPF的互操作帮助类WindowInteropHelper,相关连接:https://msdn.microsoft.com/zh-cn/library/system.windows.
1535 0
|
C#
WPF 窗口
原文:WPF 窗口 在WPF中,经常需要对窗口进行设置,下面讲讲常用的几个设置。 窗口样式 1、无边框窗口 无边框透明窗体 设置 WindowStyle="None"--无边框,如果需要其它按钮,如缩小、放大、收缩、关闭按钮,可以自定义 AllowsTransparency="True"-...
754 0
|
C#
WPF的Timer控件的使用
原文:WPF的Timer控件的使用 通过System.Threaing.Timer控件来实现“初始加载页面时为DataGrid的模版列赋初始值” System.Threaing.Timer的用法: 步骤1: //声明定时器 System.
1162 0
|
C#
WPF中的动画
原文:WPF中的动画                                                               WPF中的动画                                                                                  周银辉动画无疑是WPF中最吸引人的特色之一,其可以像Flash一样平滑地播放并与程序逻辑进行很好的交互。
876 0