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

  • 相关阅读:
    [ffmpeg 扩展第三方库编译系列] 关于 mingw32 下编译libcaca
    新版本的tlplayer for android ,TigerLeapMC for windows发布了
    tlplayer 所有平台版本支持水印叠加
    更新Windows ActiveX,Ios
    Linux批量“解压”JAR文件
    Linux进阶路线
    30个实用的Linux find命令示例
    Redhat 无线(Wifi)上网命令行配置
    PLSQL developer常用技巧
    Hibernate4.3.5搭建Log4j日志环境
  • 原文地址:https://www.cnblogs.com/simonryan/p/3678581.html
Copyright © 2011-2022 走看看