2017-08-18 32 views
0

我有一个WPF应用程序有很多本地代码和win32窗口。程序的应用程序图标在VS2015项目中定义为.. \ gui \ rc \ MyApp.ico。当我的XenApp思杰启动程序:如何防止在Citrix中运行时将WPF + win32应用程序任务栏图标更改为Citrix默认图标?

  1. 出现飞溅
  2. 在任务栏上正确的应用程序图标出现
  3. WPF登录窗口
  4. 登录后再次出现飞溅和任务栏图标消失
  5. 接下来会出现一个Win32窗口与任务栏图标。
  6. 加载大量数据时,任务栏图标为Citrix图标,但准备好后会切换回正确的应用程序图标
  7. 关闭win32对话框后,主窗口随Citrix-图标显示在任务栏中。

在mainwindow之前的win32对话框(步骤4-5)可以被跳过,导致主窗口在用思杰任务栏图标启动后打开。上面的步骤仅仅是因为在加载对话框时任务栏图标是Citrix。

MyApp.ico是具有32位深度的160x160像素。

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

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

+1

为什么你不能只设置'可见性=“隐藏”'? – dymanoid

+0

@dymanoid:对于主窗口?要么我是个白痴,要么是因为某种原因不起作用。我今天晚上尝试,我报告。谢谢,肯定是一个合法的问题。 –

+0

@dymanoid:它的工作原理。我只需要将它设置一次以上并涉及一点闪烁。我认为我太愚蠢了(当我第一次尝试时)将它设置为隐藏在多个事件处理程序中。谢谢。它解决了我的问题,所以我想你可以写一个简短的答案。 –

回答

0

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

而不是设置ShownInTaskbar属性,初始将主窗体的Visibility属性设置为Visibility.Hidden值就足够了。

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

相关问题