2011-09-01 71 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