2009-12-02 140 views
6

當我在全屏幕WPF應用程序中的窗口之間切換時,如果是第一次顯示屏幕,顯示器將在顯示窗口之前暫時變黑。這僅在第一次顯示窗口時發生。有沒有辦法預先加載每個窗口,所以這不會發生?WPF窗口預加載

這是我已經試過:

myWindow.Show(); 
myWindow.Hide(); 

,但有一個明顯的閃爍。

然後我嘗試:

myWindow.Height = 0; 
myWindow.Width = 0; 
myWindow.WindowState = WindowState.Normal; 
myWindow.Show(); 
myWindow.Hide(); 
myWindow.Height = Screen.PrimaryScreen.Bounds.Height; 
myWindow.Width = Screen.PrimaryScreen.Bounds.Width; 
myWindow.WindowState = WindowState.Maximized; 

無頻閃,可是當我再所示的窗口。它表現出來了一種奇怪的狀態,不到一秒鐘,然後更新到正確顯示。

+0

我只想補充一點,它不僅是全屏應用程序的問題。打開包含大量視覺效果的新窗口時,我遇到同樣的問題。問題在於創建數千個不同的包裝,例如對於項目控件中的項目,首次佈局構建和渲染。第一次切換到包含大量控件的選項卡時,可能會出現同樣的問題。所以如果有人知道如何預加載控制,那將非常棒。 – levanovd 2009-12-02 05:58:43

回答

0

我有類似的問題。最後,我創建了一個啓動畫面,並在單獨的線程中將啓動畫面加載到啓動畫面後面。這停止了​​閃爍,但使初始化應用程序加載更長。

+0

你是怎麼做到的?在啓動畫面中實例化所有窗口而不顯示它們? – SRKX 2012-01-09 13:56:17