まず最初に、この問題はCitrix XenAppシームレスモードで作業しているときにのみ発生します(つまり、実際のアプリは一部のcitrixホストで実行されていますが、自分のデスクトップにあるものとしてシミュレートされています)。私もCitrixサポートでこれを取り上げますが、誰かが以前にこのような問題に直面した場合に備えて、グループをポーリングしたかっただけです。
Winforms NotifyIconを使用して、マウスがクリックされるまでシステムトレイに常駐するWPFアプリがあります。Citrixシームレスモードでは、ユーザーがシステムトレイのアイコンをクリックすると、ポップアップが点滅し、すぐに自動的に閉じます。
ポップアップウィンドウは、StaysOpenをFALSEとして作成したバニラウィンドウであり、他のすべての環境でも同じように機能します。
助言がありますか ?これは私がこれまでに気づいたことです:
- StaysOpenをtrueとして使用すると、ウィンドウは開いたままになります。しかし、フォーカスを失ったときに手動でウィンドウを閉じる方法がありません。LostFocusイベントは、ユーザーが外側をクリックしたときにポップアップで発生しません。
- citrixシームレスモードでは、MouseEnterイベントがキャプチャされますが、MouseLeaveはキャプチャされないため、ユーザーのマウスがウィンドウの外にX秒間いる場合にウィンドウを閉じるというアプローチは実現できません。
- StaysopenをFALSEとしてポップアップを開始し、2秒後にstaysopenをリセットして、ポップが固定されるようにする回避策を試しました。動作しますが、タイマーがヒットするとすぐにStaysOpenをFALSEに設定すると、ポップアップが自動的に閉じます。
- これらすべての回避策がないと、ユーザーがウィンドウが消える前にすばやくクリック(左クリック)すると、ポップアップが表示されたままになるため、ポップアップが開いたときにマウスクリックをシミュレートする方法をいくつか試しましたが、それでもカットされません。
ありがとう