【发布时间】:2011-01-26 13:20:25
【问题描述】:
在 WPF 4 应用程序中,我有一个非常大的用户控件,其中充满了控件,需要 4 秒才能在快速机器上进行初始化。在此期间,应用程序当然完全没有响应。
有没有办法在初始化此控件时在主窗口中显示动画?
我知道我无法在另一个线程上创建它。但是有没有办法从 Dispatcher 以较低的优先级创建它,以便我可以在主窗口上显示一个仍会旋转的旋转轮等?
(我现在能想到的唯一解决方案是将用户控件分解为更多部分并仅在需要时加载它们。但这需要大量的开发时间来改变。)
更新1
更清楚地说:这是一个使用标签页的简单 WPF 窗口。当打开一个新标签页时,我正在初始化包含此标签页控件的用户控件。其中一个用户控件的控件如此之多,以至于需要 4 秒才能显示新标签页。
所以我认为展示一个旋转的轮子比阻止一个应用程序更好。
【问题讨论】:
-
您能否至少包含一部分有问题的代码,以了解它正在执行哪种操作?
-
@Eamon Nerbonne:嗯,这只是控制。想象一个有 9 个数据网格的用户控件,所有数据网格都至少有 12 列并使用重蒙皮。即使禁用数据加载以测试此用户控件也需要很长时间才能初始化。
-
是的,这是 WPF 不太擅长的东西。具有讽刺意味的是,与样式化的 WPF UI 相比,普通的 javascript+CSS+浏览器 UI 通常加载速度更快,样式更通用。
标签: c# .net wpf performance animation