【问题标题】:How to prevent WPF+win32 app taskbar icon from changing to Citrix default icon when run in Citrix?在 Citrix 中运行时如何防止 WPF+win32 应用程序任务栏图标更改为 Citrix 默认图标?
【发布时间】:2017-08-18 07:44:53
【问题描述】:

我有一个包含大量本机代码和 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,则不会发生这种情况。

【问题讨论】:

  • 为什么不能设置Visibility="Hidden"
  • @dymanoid : 对于主窗口?要么我是个白痴,要么由于某种原因这不起作用。我今晚试试,然后报告。谢谢,肯定是一个合法的问题。
  • @dymanoid:它有效。我只需要多次设置它并且涉及到一些闪烁。我认为我太愚蠢了(当我第一次尝试时)将其设置为隐藏在多个事件处理程序中。谢谢。它解决了我的问题,所以我想你可以写一个简短的答案。

标签: wpf citrix xenapp


【解决方案1】:

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

与其设置ShownInTaskbar属性,不如将主窗体的Visibility属性初始设置为Visibility.Hidden值。

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

【讨论】:

    猜你喜欢
    • 2013-05-19
    • 2016-07-10
    • 1970-01-01
    • 2011-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多