我的WPF应用程序启动很慢(冷启动),我想在用户双击应用程序的图标后立即显示应用程序主窗口。
我读了这个Blog,我想添加一个启动画面来避免这种延迟。我在我的应用程序中添加了一个启动画面(PNG Image)但我有一个问题:
如何添加初始化代码以改善启动,或者在应用程序加载所有必需组件之前会显示启动屏幕?
先谢谢
答案 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();
}
}