2010-10-29 49 views
1

我已经提出了一个应用程序来展示客户端列表。您可以打开客户端,并显示客户端的详细信息。正确的窗口设计XAML(性能)

我的应用程序需要相当长的时间才能启动,所以我想提高启动性能。

在pseude码,我的主窗口看起来像这样

<Window> 
    <c:WelcomeAnimation Visibility="Visible" /> 
    <c:ClientList Visibility="Collapsed" /> 
    <c:ClientDetails Visibility="Collapsed" /> 
</Window> 

现在,显示在主窗口前,我看到客户端列表和ClientDetails被intialized。这很耗时,所以我想延迟这个初始化,并在显示主窗口并运行WelcomeAnimation时执行此操作。

这至少会让人觉得应用程序启动速度更快。

问:我在窗口设计中有哪些选择。我喜欢上面的XAML视图。当然,我所能做的一切代码隐藏,所以我的主窗口的XAML将不外乎

<Window /> 

但也许还有更好的,我不知道的选项吗?

+0

XAML的启动时间很差 - 您可能无法做到使其更快。这是非常有趣的工作,但.....同时确保你正在测试你的二进制文件的发布版本......以我的经验来说,调试XAML版本的启动时间通常非常差。 – 2010-10-29 14:57:19

回答

0

这取决于。当启动时间是由于您自己编写的代码(例如调用Web服务或从数据库获取数据)时,请不要在初始化时执行该代码,而是启动后台线程/ ThreadPool任务并在其中运行代码。

当启动时间实际上仅仅是因为控件被加载(例如,它是一个非常复杂的控件和许多视觉效果)时,您有两种选择。要么放入更换面板而不是控件,并在显示动画后填入。第二种选择是咬一口子弹。

还有一件事要注意。如果启动时间实际上是由于大量的视觉效果,则初始化将不得不在UI线程上完成,因此加载控件时不会播放动画。

+0

如何制作“更换面板”。我该如何更换一个控件? – 2010-11-01 08:38:37

+0

您只需创建一个''而不是现在您已经拥有控制权的位置,然后当您准备添加实际面板时,只需将其添加为小孩即可。这个孩子将自动占据码头面板的所有空间。 – 2010-11-01 08:43:01

+0

Bedankt彼得! – 2010-11-01 14:10:04