2010-06-03 60 views
5

我有一个具有3个WPF控件的元素主机。我将元素主机放在一个winform上。 当我的应用程序即将到来时,元素主机需要几秒钟的时间,并且winform将显示​​为空白屏幕。winforms元素主机加载时间问题

如何解决这个问题?任何想法都表示赞赏。基本上,我不想显示空白屏幕,因为当应用程序出现时它看起来很难看。

回答

1

这让我觉得很奇怪。我之前使用过一个ElementHost,并没有注意到加载子控件的任何严重延迟。

如果您可以尝试通过用简单的纯文本框控件替换您的控件来隔离问题,将会有所帮助。那么加载需要多长时间?

我怀疑是你的控制逻辑中有一些东西需要很长时间才能完成并延迟控制加载。如果你能弄清楚它是什么,并加速或使处理异步(考虑使用Reactive Extensions),那么你至少会摆脱黑屏。一个分析器(Visual Studio或ANTS)可以帮助我们缩小这个差距。

1

您可以加快通过加载模型窗口负荷&您的加载时间关闭应用程序启动(这只是一招:))

只需用一个或两个要素主机创建新的窗口,并增加他们的孩子WPF控制。不需要实现任何逻辑或设置任何属性,只需添加子控件即可。

然后当应用程序启动加载模型窗口并关闭(将加载位置设置为远离屏幕边界)。 (如果你想要你也可以使用你的原始窗口。)

然后你的窗口将正常打开。