2017-03-09 86 views
0

我有一個使用PRISM的WPF應用程序。我有一個登錄屏幕,併成功登錄一個包含多個項目的TileListView的新視圖。這需要超過10秒的渲染,因爲控制必須計算很多等等。所有這些都通過標準行爲來使用UI線程,因爲在WPF中的渲染是在UI線程中完成的。是否有可能顯示一個像一個微調的WaitControl或只是一個簡單的動畫在單獨的窗口或類似的東西?現在到當時的動畫停止,控制在UI線程中呈現。在WPF中渲染UIElement時等待屏幕

+0

是否有可能重構,以便UI的東西綁定到在後臺線程中執行計算後分配的DependencyProperties?似乎它可能是一個問題,在UI線程上發生如此之多 –

+0

該控件來自Telerik,因此我無法修改:/ –

+0

我明白了。 在同一個窗口中的微調絕對不會工作 - 它的自旋動畫會發生在同一個陷入UI的線程上,所以它不會很好地旋轉。 但也許你想創建另一個窗口或重疊的東西可能工作。您只需知道控件何時完成加載。 你能否解釋一下控制計算的內容?這可能有助於我們找到另一種解決方案 –

回答

1

您可以創建一個新的窗口,在單獨的線程中啓動。請參閱以下博客文章,瞭解如何執行此操作的示例。

啓動一個WPF窗口在一個單獨的線程:http://reedcopsey.com/2011/11/28/launching-a-wpf-window-in-a-separate-thread-part-1/

然後你剛開始這個線程,顯示您已經驗證憑據,只是你沉重的渲染之前,即將開始只是之後的窗口。

這可能是你可以做的最好的事情,它也應該是一個很容易實現的東西。

+0

正是我所需要的,非常感謝。 –

0

您可以使用SplashScreen來顯示,直到後臺進程完成。請參考此Splash Screen in WPF

+0

這並不能解決我的問題,請閱讀我的問題。 –