在Windows 8中的默認進度條也與時俱進,和之前Silverlight中的不一樣。本文將講述三種不同的進度條 ,另外在本文中也會將兩種定時器。
進度條
主要屬性:
Value:當前進度值。
Maximum:最大進度值。
IsIndeterminate:指定進度條是否確定。
確定進度條:進度明 確的進度條,已完成進度以另外一種顏色顯示
關鍵代碼:
<ProgressBar Maximum="100" Value="0" Height="20" Name="probar1"
IsIndeterminate="False" Margin="275,167,966,581"></ProgressBar>
不確定進度條:進 度不明確的進度條,不可預知當前進度
關鍵代碼:
<ProgressBar IsIndeterminate="True" Width="80" Height="10" Margin="600,167,566,591"/>
不確定進度環 :進度不明確的進度環,不可預知當前進度
關鍵代碼:
<ProgressRing IsActive="True" Height="58" Margin="1000,167,299,543" Width="67"/>
定時器
延遲 定時器:只運行一次,延遲X毫秒運行的定時器。
關鍵代碼:
private void Button_Click_1 (object sender, RoutedEventArgs e) { DelayTimer(); } /// <summary> /// 延遲定時器 /// </summary> private void DelayTimer() { //設置延遲定時器 ThreadPoolTimer tptimer = ThreadPoolTimer.CreateTimer(async (timer) => { await Dispatcher.RunAsync( CoreDispatcherPriority.High, () => { this.probar1.Value += 20; }); }, TimeSpan.FromMilliseconds(3000)); }
循環定時器:循環運行N次,每次延遲X毫秒的定時器。
關鍵代碼:
private void Button_Click_2(object sender, RoutedEventArgs e) { PeriodicTimer(); } /// <summary> /// 循環定時器 /// </summary> private void PeriodicTimer() { //循環定時器 ThreadPoolTimer tptimer = ThreadPoolTimer.CreatePeriodicTimer( async (timer) => { await Dispatcher.RunAsync( CoreDispatcherPriority.High, () => { this.probar1.Value = this.probar1.Value + 1; }); }, TimeSpan.FromMilliseconds(100)); }
最後我們來看運行效果圖和如需源碼請下載: http://files.cnblogs.com/chengxingliang/Win8Progress.rar