WPF应用程序窗口出现在SplashScreen之上

时间:2009-10-27 16:54:23

标签: wpf splash-screen

我按照How to: Add a Splash Screen to a WPF Application中列出的简单步骤为我的WPF应用程序添加了一个启动画面。当我启动应用程序时,会显示启动图像,然后弹出主窗口,并且启动图像会消失。

我的问题是当主窗口弹出时,它会出现在初始图像的顶部。然后,当启动图像开始淡出时,启动图像会再次弹出到顶部。最终结果是,当主窗口出现时,启动图像会瞬间消失。

如何强制主窗口出现在启动图像下方,以便启动图像不会消失?

3 个答案:

答案 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;

否则你可以看一下:

Splash Screen Example

这也可能有所帮助。