我们将Prism 4 用于 WPF以及Prism 附带的导航功能。
当导航到(加载)我们应用程序中的某些视图时,我们注意到延迟 - 可以理解,这来自于实例化视图及其依赖项,这包括从磁盘加载必要的程序集。
我们想在应用程序启动时预加载这些视图,同时显示启动屏幕或类似的东西。
有没有人做过类似的事情并想分享他们的经验?
我们将Prism 4 用于 WPF以及Prism 附带的导航功能。
当导航到(加载)我们应用程序中的某些视图时,我们注意到延迟 - 可以理解,这来自于实例化视图及其依赖项,这包括从磁盘加载必要的程序集。
我们想在应用程序启动时预加载这些视图,同时显示启动屏幕或类似的东西。
有没有人做过类似的事情并想分享他们的经验?
我们还没有找到一个“干净”的解决方案来做到这一点。但这就是我们解决它的方法。
在引导程序函数 InitializeShell() 中,我们导航到要预加载的所有视图。最后,我们导航到我们想要在主屏幕中显示的所有视图。
protected override void InitializeShell()
{
base.InitializeShell();
Application.Current.MainWindow = (MainShell) Shell;
// Preload views
// ---- Load (navigate to) all views here you want to have preloaded
// Load actual default views
// ---- Load (navigate to) the actual views for your "homescreen"
// Finished loading now show the shell
Application.Current.MainWindow.Show();
}
这不是一个理想的情况,如果您有很多意见,可以进行大量的维护工作。这对我有用,但如果有人有更好的解决方案,我也很感兴趣。
我不知道这是否有帮助,但我使用以下技术:1)将所有需要的程序集的引用添加到我的 shell 2)使用WPF 工具包中的繁忙指示器