WPF 应用程序窗口出现在 SplashScreen 顶部

问题描述 投票:0回答:3

我按照如何:向 WPF 应用程序添加启动画面中概述的简单步骤向我的 WPF 应用程序添加启动画面。当我启动应用程序时,会显示启动图像,然后弹出主窗口,然后启动图像消失。

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

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

wpf splash-screen
3个回答
7
投票

在 .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”当然是嵌入在应用程序资源中的启动图像的标识符。


2
投票

这不是默认行为,您必须有一些代码来手动聚焦主窗口?

使用如下代码手动关闭淡入淡出可能会更容易:

_splash = new SplashScreen("LoadingScreen.png");`
_splash.Show(false);`
_splash.Close(TimeSpan.Zero); `

0
投票

不确定这是否有帮助,但如果您将启动屏幕的所有者设置为当前表单,那么这也许可以解决问题?

_splash.Owner = this;

否则你可以看这里:

启动画面示例

这也可能有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.