日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

WPF实现倒计时

發布時間:2024/5/8 75 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WPF实现倒计时 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

WPF實現倒計時

用WPF做一個簡單的倒計時。
實現代碼如下:
首先布局樣式,XAML代碼:

<Grid><Grid.RowDefinitions><RowDefinition Height="2*"/><RowDefinition Height="1*"/></Grid.RowDefinitions> </Grid> <Grid Grid.Row="0"><TextBox Background="#dddddd" Margin="69,68,76,-84" x:Name="DaoJiShi" FontSize="20" VerticalContentAlignment="Center" TextAlignment="Center" Height="39"/> </Grid><Grid Grid.Row="1"><Button Name="Start" Background="CadetBlue" Margin="69,140,74,-156" ToolTip="開始" Click="Start_Click">開始</Button> </Grid>

布局樣式后,到后臺代碼:

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秒鐘時間結束后的結果圖。

總結

以上是生活随笔為你收集整理的WPF实现倒计时的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。