我注意到許多應用程序在進行HTTP請求時在屏幕頂部執行「更新...」動畫。我在等待異步請求返回時如何在我的應用程序中發生這種情況?如何在HTTP請求期間顯示更新動畫
我認爲啓動請求的方法以某種方式觸發動畫,並且處理最終響應的方法會停止它。還是它會自動檢測何時存在網絡流量?
我注意到許多應用程序在進行HTTP請求時在屏幕頂部執行「更新...」動畫。我在等待異步請求返回時如何在我的應用程序中發生這種情況?如何在HTTP請求期間顯示更新動畫
我認爲啓動請求的方法以某種方式觸發動畫,並且處理最終響應的方法會停止它。還是它會自動檢測何時存在網絡流量?
這是一個隱藏的ProgressBar
,設置爲不確定模式得到的點。
當您開始請求時顯示它,然後在請求完成時將其隱藏。 (或者如果出錯)
有關性能考慮事項請參閱下面的註釋&的替代方案。
例如
webclient.DownloadStringAsync(new Uri("http://example.com"));
progress.IsIndeterminate = true;
progress.Visibility = Visibility.Visible;
和
void dl_DownloadStringCompleted2(object sender, DownloadStringCompletedEventArgs e)
{
progress.Visibility = Visibility.Collapsed;
progress.IsIndeterminate = false;
...
}
與意見建議的性能更新。謝謝
使用ProgressBar.IsIndeterminate消耗60%以上的CPU資源。它可能會殺死一些應用程序(如果他們需要大量CPU週期)或者耗盡電池。
替代描述here
我也建議使用進度從Silverligt Toolkit,出於性能的考慮(在其上運行diferent線程比UI,更deatils可以讀here)
啊。我認爲這是更有趣的。謝謝。 – Edgar 2011-03-18 15:23:29
順便說一下,我不得不從響應處理程序中執行'Deployment.Current.Dispatcher.BeginInvoke(HideLoader);',因爲我的代碼的寫法和用於顯示它的類似調用的方式。 – Edgar 2011-03-18 15:32:31
請注意 - 如果您在不確定模式下使用ProgressBar,請使用其中一種高性能變體 - http://www.jeff.wilcox.name/2010/08/performanceprogressbar/ - 現在也在SL WP7 Toolkit中。 – Stuart 2011-03-18 16:17:17