使用启动屏幕提高WPF应用程序感知的冷启动性能

时间:2016-08-11 12:18:40

标签: c# wpf startup splash-screen

我的WPF应用程序启动很慢(冷启动),我想在用户双击应用程序的图标后立即显示应用程序主窗口。

我读了这个Blog,我想添加一个启动画面来避免这种延迟。我在我的应用程序中添加了一个启动画面(PNG Image)但我有一个问题:

如何添加初始化代码以改善启动,或者在应用程序加载所有必需组件之前会显示启动屏幕?

先谢谢

1 个答案:

答案 0 :(得分:0)

这取决于您加载资源的时间非常耗时,导致MainWindow延迟这么多。如果您已经在XAML的<App.Resouces />块中创建了那些,那么它很棘手。

<MainWindow.Resources />中为视图模型创建资源时,只需创建一个包含启动画面的工具窗口或类似工具,并在Application_Startup事件中显示:

public partial class App : Application
{
    // A Splash-Window to overlay until everything is ready.
    public SplashWindow AppLauncher = new SplashWindow(); 

    private void Application_Startup(object sender, StartupEventArgs e)
    {
        AppLauncher.lblText.Content = "Loading data...";
        AppLauncher.Show();
    }
}

当所有资源都加载到MainWindow中,然后在Loaded事件中隐藏/再次丢弃窗口。

public partial class MainWindow : Window
{
    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        (App.Current as App).AppLauncher.Close();
    }
}