2012-11-18 42 views
0

我想在用戶界面加載內容時顯示進度環。在WPF中查看數據加載時顯示進度圓

我嘗試在shellView中使用布爾值並將其設置爲true或false。

IsBusy=true; 

但是,由於我使用的是Caliburn Micro for MVVM,因爲UI會在後臺工作時凍結,所以View並未顯示進度環。我嘗試使用後臺工作,但不工作。

我想在我的視圖忙時顯示進度指示器。可能會加載一個ComboBox或做一些後臺任務。

回答

4

如果您正在執行後臺任務(例如從Web服務檢索數據),則可以使用.Net 4.0中的BackgroundWorkerTask.Factory.StartNew()在單獨的線程中執行該操作(而不是在所謂的「UI線程」)。這將允許您的View在執行後臺操作時保持響應。

現在,在加載視圖本身的情況下,您無法在單獨的線程中執行此操作,因此無法阻止UI凍結一段時間,直至完全加載。

因此,一個選項是在一個單獨的線程中創建一個「覆蓋窗口」(因此有它自己的調度程序),它將是一個透明窗口,位於當前正在加載的窗口的「上方」(按Z順序) 。覆蓋窗口保持響應,因爲它具有自己的調度程序,因此您可以顯示加載指示器或動畫,並在加載完成時將其刪除。

Here就是我所說的一個例子。

+0

我會試試這個, –

+0

我想要一個適用於Caliburn Micro的解決方案 –

相關問題