首先,此问题仅在 Citrix XenApp 无缝模式下工作时发生(简而言之,这意味着实际应用程序正在某个 citrix 主机上运行,但它被模拟为驻留在您自己的桌面中)。我也会与 Citrix 支持一起讨论这个问题,但只是想对小组进行民意调查,以防以前有人遇到过这样的问题。
我有一个 WPF 应用程序,它使用 Winforms NotifyIcon 驻留在系统托盘中,直到单击鼠标。在 Citrix 无缝模式下,当用户单击系统托盘中的图标时,弹出窗口会闪烁并立即自行关闭。
弹出窗口是一个普通的窗口,使用 StaysOpen 创建为 FALSE,并且在所有其他环境中都一样。
有什么建议么 ?这是我到目前为止注意到的:
- 如果我将 StaysOpen 设为 true,则窗口将保持打开状态。但是当它失去焦点时,我没有办法手动关闭窗口。当用户在外面点击时,LostFocus 事件不会在弹出窗口中触发。
- 在 citrix 无缝模式下,会捕获 MouseEnter 事件,但不会捕获 MouseLeave,因此如果用户鼠标在窗口外 X 秒,则无法实现关闭窗口的方法。
- 尝试了将 Staysopen 设置为 FALSE 启动弹出窗口的解决方法,然后在 2 秒后重置保持打开状态,以便弹出提示。它可以工作,但是一旦我将 StaysOpen 设置为 FALSE,一旦计时器被击中,弹出窗口就会自行关闭。
- 如果没有所有这些解决方法,如果用户在窗口消失之前快速单击(左键单击)窗口,弹出窗口就会粘住,所以我尝试了几种方法来模拟鼠标在弹出窗口打开时的点击,但这也没有削减它。
谢谢