在Citrix中运行时,如何防止WPF + win32 app任务栏图标更改为Citrix默认图标?

时间:2017-08-18 07:44:53

标签: wpf citrix xenapp

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

  1. 出现Splash
  2. 出现WPF登录窗口,任务栏中有正确的应用程序图标
  3. 登录后,再次出现闪屏,任务栏图标消失
  4. 接下来会出现一个带有任务栏图标的win32窗口。
  5. 在加载大量数据时,任务栏图标为Citrix-icon,但准备好后,会切换回正确的应用程序图标
  6. 关闭win32对话框后,主窗口将显示任务栏中的Citrix-icon。
  7. 可以跳过主窗口之前的win32对话框(步骤4-5),从而在使用Citrix任务栏图标启动后打开主窗口。上面的步骤只是因为当对话框正在加载时,任务栏图标是Citrix。

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

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

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

1 个答案:

答案 0 :(得分:0)

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

最初将主窗体的ShownInTaskbar属性设置为Visibility值,而不是设置Visibility.Hidden属性。

一旦窗口准备就绪,Visibility属性就可以设置为Visibility.Visible值,从而显示窗口及其任务栏按钮(带有正确的图标)。