chasecnblogs 发表于 2013-1-3 15:37:45

WPF 实现倒计时

<div id="cnblogs_post_body">效果:http://images.cnitblog.com/blog/483289/201212/27104509-ddab6eef49d04938b55a7cd22c22378e.png
UI:放置一个Label ---><Label Name="lblSecond" FontSize="20" Foreground="Red" ></Label>
CS:
  private int countSecond=300; //记录秒数
  private void UserControl_Loaded(object sender, RoutedEventArgs e)
  {
    private DispatcherTimer disTimer = new DispatcherTimer();
    disTimer.Interval = new TimeSpan(0, 0, 0, 1); //参数分别为:天,小时,分,秒。此方法有重载,可根据实际情况调用。
    disTimer.Tick += new EventHandler(disTimer_Tick); //每一秒执行的方法
    disTimer.Start();
  }
  void disTimer_Tick(object sender, EventArgs e)
  {
    if(countSecond==0)
    {
      MessageBox.Show("结束");
    }
    else
    {
      //判断lblSecond是否处于UI线程上
      if (lblSecond.Dispatcher.CheckAccess())
      {
        lblSecond.Content=countSecnd.ToString();
      }
      else
      {
        lblSecond.Dispatcher.BeginInvoke(DispatcherPriority.Normal,(Action)(() =>{
          lblSecond.Content=countSecond.ToString();
        }));  
      }
      countSecond--;
    }
  }
  

  
页: [1]
查看完整版本: WPF 实现倒计时