0

我有一个包含大量本机代码和 win32 窗口的 WPF 应用程序。程序的Application图标在VS2015项目中定义为..\gui\rc\MyApp.ico。当我在 XenApp Citrix 中启动程序时:

  1. 出现飞溅
  2. WPF 登录窗口在任务栏中显示正确的应用程序图标
  3. 登录后再次出现启动画面并且任务栏图标消失
  4. 接下来会出现一个带有任务栏图标的 win32 窗口。
  5. 加载大量数据时,任务栏图标是 Citrix 图标,但准备好后,正确的应用程序图标会切换回来
  6. 关闭 win32 对话框后,主窗口将在任务栏中显示 Citrix 图标。

可以跳过主窗口之前的 win32 对话框(步骤 4-5),从而在启动后使用 Citrix 任务栏图标打开主窗口。上面的步骤只是因为对话框正在加载任务栏图标是 Citrix。

MyApp.ico 是 160x160 像素,32 位深度。

在初始化期间创建主窗口时,其 ShowInTaskbar 设置为 false。当它准备好时,它被设置为 true。这样做是因为我们想在主窗口之前显示其他窗口,所以未完成的主窗口位于屏幕之外的某个地方,我们不希望它可以从任务栏访问。

编辑:如果 ShowInTaskbar 未设置为 false,则不会发生这种情况。

4

1 回答 1

0

实际上不是这个问题的通用解决方案,但似乎我提出的简单方法用 OP 的代码解决了这个特定问题。

与其设置属性,只需将主窗体ShownInTaskbar的属性初始设置为值即可。VisibilityVisibility.Hidden

一旦窗口准备就绪,Visibility就可以将该属性设置为Visibility.Visible导致窗口及其任务栏按钮显示的值(使用正确的图标)。

于 2017-08-22T15:22:53.413 回答