WPF实现倒计时
WPF實現倒計時
用WPF做一個簡單的倒計時。
實現代碼如下:
首先布局樣式,XAML代碼:
布局樣式后,到后臺代碼:
private int countSecond = 10;//設置秒數(初始化值) public void disTimer_Tick(object sender, EventArgs e){if (countSecond == -1){MessageBox.Show("10秒倒計時已結束!", "系統提示", MessageBoxButton.OK, MessageBoxImage.Warning);disTimer.Stop();//計時停止 }else{//判斷是否處于UI線程上if (DaoJiShi.Dispatcher.CheckAccess()){DaoJiShi.Text = countSecond.ToString() + "秒";}else{DaoJiShi.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action)(() => {DaoJiShi.Text = countSecond.ToString() + "秒";}));}countSecond--;}}private DispatcherTimer disTimer = new DispatcherTimer();public void CountDown(){//設置定時器disTimer.Tick += new EventHandler(disTimer_Tick);//每一秒執行的方法disTimer.Interval = new TimeSpan(10000000); //時間間隔為一秒。disTimer.Start();//計時開始}private void Start_Click(object sender, RoutedEventArgs e){CountDown();//執行方法}注意:“Timer”和“DispatcherTimer”的區別:
Timer必須使用this.Dispatcher.BeginInvoke去更新UI,DispatcherTimer 可以直接更新UI
這兩者區別是 Timer在非UI線程跑的,DispatcherTimer是在UI線程跑的。
需要注意的是在WPF中涉及到界面操作的話,一定要使用DispatcherTimer,DispatcherTimer是為WPF專門設計的,不然的話會提示界面資源被其他線程所擁有而無法更新界面。
上圖是點擊開始后的結果圖。
上圖是設置10秒鐘時間結束完成彈出的消息框。
上圖是設置10秒鐘時間結束后的結果圖。
總結
- 上一篇: “互联网+”大学生创新创业大赛产业命题赛
- 下一篇: lisp 左手钢筋_CAD左手键与加载过