2011-09-01 69 views
2

我有一個WPF窗口與選項卡控件。標籤控件的每個TabItem的有PAGE爲內容的框架......這樣的:WPF頁面背景加載中...如何?

<TabItem Name="Tab01"> 
    <Frame Name="Tab01Frame" /> 
</TabItem> 
MyPage Tab01Page = New MyPage() 
Tab01Frame.Navigate(Tab01Page) 

現在,我有這個問題。 tabitem的每個頁面都在窗口構造器中加載,這導致窗口的性能瓶頸。它需要幾秒鐘才能顯示。

有沒有辦法在後臺進程加載頁面?

+2

如何在不需要時加載頁面? –

+0

是的,我試過這種方式,似乎沒問題......唯一的問題是,在第一個tabitem選擇頁面inizialitazion有延遲。如果可能,在後臺加載頁面對我來說是最好的解決方案。 –

回答

2

要開始,將初始化代碼移到Loaded事件(不在構造函數中)。這將使界面看起來更具響應性。另外,使用Dispatcher對象來背景任務。

private delegate void DelegateTypeYouDeclare(); 

this.Dispatcher.BeginInvoke(new DelegateTypeYouDeclare(MethodToCall), null); 

這些只是第一步。有關更好的示例,請參閱以下MSDN文章: http://msdn.microsoft.com/en-us/magazine/cc163328.aspx