zoukankan      html  css  js  c++  java
  • WPF计时器

    using System;
    using System.Windows;
    using System.Windows.Threading;
    
    namespace WpfStopWatch
    {
        /// <summary>
        /// MainWindow.xaml 的交互逻辑
        /// </summary>
        public partial class MainWindow : Window
        {
            /// <summary>
            /// 状态
            /// </summary>
            enum State
            {
                Start,
                Pause,
                End
            }
    
            /// <summary>
            /// 状态
            /// </summary>
            State _state = State.End;
    
            /// <summary>
            /// 计时用
            /// </summary>
            TimeSpan _timeSpan = new TimeSpan(0,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();
            }
    
            /// <summary>
            /// 时钟回调
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            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();
                            //_timeSpan = new TimeSpan(0, 23, 12, 45, 54);
                        }
                        break;
                }
    
                var time = string.Format("{0:D2}:{1:D2}:{2:D2}", _timeSpan.Hours, _timeSpan.Minutes, _timeSpan.Seconds);
                textBox1.Text = time;
            }
    
            /// <summary>
            /// 退出
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void button4_Click(object sender, RoutedEventArgs e)
            {
                Close();
            }
    
            /// <summary>
            /// 开始
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void button1_Click(object sender, RoutedEventArgs e)
            {
                _state = State.Start;
            }
            /// <summary>
            /// 暂停
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void button2_Click(object sender, RoutedEventArgs e)
            {
                _state = State.Pause;
            }
            /// <summary>
            /// 停止
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void button3_Click(object sender, RoutedEventArgs e)
            {
                _state = State.End;
            }
        }
    }
    

  • 相关阅读:
    asp网站中使用百度ueditor教程
    URL特殊字符需转义
    织梦DEDE文章列表前面自动加递增数字标签
    dede修改templets模板文件夹后,出现“无法在这个位置找到: ”错误的解决办法
    Mysql命令大全
    成功,来自有梦想,肯坚持
    飞天侠模板的相关修改教程
    bios自检时间长,显示0075错误
    电脑桌面假死解决方法
    没有哪个人是随随便便成功的
  • 原文地址:https://www.cnblogs.com/simonryan/p/3678581.html
Copyright © 2011-2022 走看看