WPF Popup以无缝Citrix模式关闭

时间:2012-10-12 13:36:21

标签: wpf popup citrix

首先,这个问题只发生在使用Citrix XenApp无缝模式时(简单来说,这意味着实际的应用程序在某些Citrix主机上运行,​​但它被模拟为驻留在您自己的桌面中)。我也会考虑使用Citrix支持,但是如果有人在遇到这样的问题之前就想对该小组进行调查。

我有一个WPF应用程序,它使用Winforms NotifyIcon驻留在系统托盘中,直到鼠标单击。在Citrix无缝模式下,当用户单击系统托盘中的图标时,弹出窗口会自动闪烁并立即关闭。

弹出窗口是一个用StaysOpen创建为FALSE的香草窗口,同样适用于其他所有环境。

有什么建议吗?这是我到目前为止所注意到的:

  1. 如果我将StaysOpen用作true,则窗口保持打开状态。但是当我失去焦点时,我无法手动关闭窗口。当用户点击外部时,LostFocus事件不会在弹出窗口中被触发。
  2. 在Citrix无缝模式下,捕获MouseEnter事件但MouseLeave不是,因此如果用户鼠标在窗口外X秒,关闭窗口的方法是不可实现的。
  3. 尝试使用Staysopen作为FALSE启动弹出窗口的解决方法,然后在2秒之后重置staysopen以便pop弹出。它可以工作,但是一旦我将StaysOpen设置为FALSE,一旦计时器被击中,弹出窗口就会自动关闭。
  4. 如果没有所有这些变通方法,如果用户在窗口消失前快速点击(左键单击),弹出窗口就会弹出,所以我尝试了几种方法来模拟鼠标点击弹出窗口,因为它打开了但是没有剪切它要么。
  5. 由于

1 个答案:

答案 0 :(得分:0)

我无法帮助您提供有关调整应用程序以解决问题的具体建议,但是使用锤子方法总是会非常困难,即告诉消费者您的应用程序禁用应用程序的无缝连接: / p>

http://support.citrix.com/article/CTX116357/

更新:我发现原始的无缝开发 - 他说这听起来像一个无缝无法在客户端和服务器之间正确路由所有必要的鼠标消息的错误。他说,诊断这个问题的最佳方法是在XenApp服务器和客户端上运行Spy ++工具,然后比较每一方看到的消息,以确定哪些消息没有被翻译。由于它听起来像一个真正的错误,最好的办法是提供Citrix支持的支持票,并为他们提供一个可以重现错误的示例应用程序。