WPF允许您按adding an image file to your project and setting its build property to SplashScreen创建初始屏幕。关于此功能的优点(与滚动我自己的启动画面相反)是在WPF应用程序启动时(在旧机器上可能需要花费大量时间),启动画面会立即显示 。
是否可以在运行时获得对此启动画面的引用?有SplashScreen
class但不幸的是,它没有静态的"当前"方法或类似的东西。
对底层启动画面窗口(Window
instance或甚至只是底层的Windows API窗口句柄)的任何类型的引用对我来说都没问题。
后台:如果应用程序的主窗口关闭且启动画面仍然可见,那么bug in WPF会导致应用程序崩溃。错误won't be fixed,所以我需要通过保持我的应用程序“活着”来解决这个问题。直到闪屏消失。我目前通过Thread.Sleep(2000)
- 在我的主窗口Closing
事件中执行此操作,但这很丑陋且不可靠。我宁愿等待(仅),直到启动画面窗口消失。
答案 0 :(得分:2)
您可以在SplashScreen
OnStartup
课程的App
方法或构造函数中自行显示和关闭App.xaml.cs
:
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
SplashScreen splashScreen = new SplashScreen("splash.png");
splashScreen.Show(false);
//init your main window here...
splashScreen.Close(TimeSpan.FromSeconds(1));
}
然后,您应该能够控制启动画面和应用程序的生命周期。