我們使用棱鏡4 WPF以及附帶的棱鏡導航功能。如何在應用程序啓動時預加載Prism視圖?
當瀏覽(加載)在我們的應用有一定的看法,我們看到的延遲 - 這可以理解來自實例化視圖及其相關性,這包括從磁盤裝載必要的組件。
我們希望在應用程序啓動時預先加載這些意見而呈現出閃屏或類似的東西。
有沒有人做過類似的東西,想分享他們的經驗?
我們使用棱鏡4 WPF以及附帶的棱鏡導航功能。如何在應用程序啓動時預加載Prism視圖?
當瀏覽(加載)在我們的應用有一定的看法,我們看到的延遲 - 這可以理解來自實例化視圖及其相關性,這包括從磁盤裝載必要的組件。
我們希望在應用程序啓動時預先加載這些意見而呈現出閃屏或類似的東西。
有沒有人做過類似的東西,想分享他們的經驗?
我們還沒有找到一個「乾淨」的解決方案做到這一點呢。但這是我們如何解決它的。
在引導程序功能InitializeShell(),我們定位到我們要預加載的所有意見。最後我們導航到我們想要在主屏幕上顯示的所有視圖。
protected override void InitializeShell()
{
base.InitializeShell();
Application.Current.MainWindow = (MainShell) Shell;
// Preload views
// ---- Load (navigate to) all views here you want to have preloaded
// Load actual default views
// ---- Load (navigate to) the actual views for your "homescreen"
// Finished loading now show the shell
Application.Current.MainWindow.Show();
}
這不是一個理想的情況下,如果你有很多的意見,可以給大量的維護工作。這爲我做了這份工作,但如果有人有更好的解決方案,我也很感興趣。
我不知道這是否能夠幫助或沒有,但我用下面的方法: 1)添加一個引用了所有需要的組件,以我的殼 2)使用繁忙指示從WPF toolkit
這是我也考慮過這種事情。這只是一個短期的解決方案,但總有希望,棱鏡團隊將在未來提出解決方案。 – 2011-03-25 08:24:04
能夠將視圖預加載到包含它們的模塊的責任是很好的。您是否曾嘗試在初始化期間的較早時間加載/導航到您的視圖,或者是否會給您帶來錯誤? – 2011-03-25 08:26:44
我試圖在引導的早期階段「預加載」視圖,但是這導致了空異常,因爲它還沒有加載一些ViewModels。 – 2011-03-28 12:25:15