我按照How to: Add a Splash Screen to a WPF Application中列出的简单步骤为我的WPF应用程序添加了一个启动画面。当我启动应用程序时,会显示启动图像,然后弹出主窗口,并且启动图像会消失。
我的问题是当主窗口弹出时,它会出现在初始图像的顶部。然后,当启动图像开始淡出时,启动图像会再次弹出到顶部。最终结果是,当主窗口出现时,启动图像会瞬间消失。
如何强制主窗口出现在启动图像下方,以便启动图像不会消失?
答案 0 :(得分:6)
在.NET 4.0中,已向Show方法添加了overload,允许在初始屏幕窗口中设置窗口样式WS_EX_TOPMOST。在代码中显示启动画面:
SplashScreen splash = new SplashScreen("SplashScreen.png");
splash.Show(autoClose: true, topMost: true);
我从方法中调用
protected override void OnStartup(StartupEventArgs e)
在App.xaml.cs。
“SplashScreen.png”当然是嵌入在应用程序资源中的splash图像的标识符。
答案 1 :(得分:1)
这不是默认行为,您必须拥有一些手动聚焦主窗口的代码吗?
使用如下代码手动关闭淡入淡出可能更容易:
_splash = new SplashScreen("LoadingScreen.png");
_splash.Show(false);
_splash.Close(TimeSpan.Zero);
答案 2 :(得分:0)
不确定这是否会有所帮助,但是如果您将Splash屏幕的所有者设置为当前表单,那么这应该可以解决吗?
_splash.Owner = this;
否则你可以看一下:
这也可能有所帮助。