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

猜你喜欢

转载自blog.csdn.net/qq_40670171/article/details/130154013
今日推荐