仅在TaskBar中显示的WPF窗口

时间:2011-09-08 07:39:43

标签: wpf taskbar splash-screen

我不确定我想做的是否合适,所以我会解释一下。

我们有一个需要一段时间才能加载的大型应用程序。所以我们有一个闪屏。 启动画面会导致远程桌面(终端服务器)上的加载时间过长。 因此,为了缓解这种情况,我们希望在加载RDP时隐藏启动画面。 但我们仍然需要至少向用户显示应用程序正在加载。

所以,我想也许只是在任务栏(而不是系统托盘)中显示一些东西,因为它会在应用程序完全加载后消失(并被主窗体的Task图标替换)。 但是,我看过的任何WPF解决方案都需要一个可见的表单/窗口来处理任务栏状态。

在没有显示WPF窗口的情况下,有没有办法在任务栏中显示某些内容?

或者是否有另一种显示应用程序加载状态的方法,而不显示屏幕上的内容?

2 个答案:

答案 0 :(得分:1)

我们遇到了同样的问题。

在远程桌面上,我们执行了以下步骤...

  1. 我们将Splash窗口配置为不允许调整大小,并且只有最小化和关闭按钮。

  2. 我们删除了WindowStyle = None设置,以便Splash窗口的标题栏出现

  3. 我们将Splash窗口的宽度和高度设为零。这样你在屏幕上看到的就是标题栏的一个小蓝色矩形,文字为“Loading ... Please Wait ...”,最小化和关闭按钮。

  4. 我们使用Window的内核调用来禁用标题栏的“关闭”按钮。这样用户无法取消Splash窗口。

  5. 因此,用户所能做的就是最小化或从任务栏恢复。

  6. 恢复后,他看到的只是标题栏的蓝色矩形,上面有“正在载入...”文字。这样窗口也声明了它在任务栏上的位置,但隐藏了它的初始动画,用户也知道正在加载启动画面。为此,您还可以通过附加更多fullstops来更新标题栏的文本...

    装载。请等一下..

    装载。请等一下......

    装载。请等一下......

    装载。请等一下..

答案 1 :(得分:0)

我认为您需要查看问题的根本原因。可能会考虑线程和并行性。

然而,您要问的一个简单的解决方案就是创建一个隐藏的窗口。一个是透明的,没有边界或任何东西。它甚至可以设置为0,0的大小。这样您就可以获得所需的任务栏项。