私のアプリケーションはシステム トレイに収まるように設計されており、Windows 7 のネットワーク/ボリューム/電源/アクション センターのトレイ項目 (および Windows Vista の同等の項目) と同様に動作します。つまり、トレイ アイコンをクリックすると表示され、フォーカスを失うと非表示になります。
アプリケーションは WPF で作成されていますが、現在、トレイ アイコンに WinForms の NotifyIcon を使用しています。
アプリケーションのトレイ アイコンの位置 (つまり、画面座標) を決定する方法について誰か提案があるかどうか知りたいです。デフォルトの Windows Vista/7 のトレイ項目には、これを行う何らかの方法があります。これは、ポップアウト ウィンドウが関連するトレイ アイコンの上に中央揃えで配置されているためです。
Vista では、これは大した問題ではありませんでした。アプリケーションを常に右下隅に設定していましたが、問題ないように見えました (ただし、タスクバーが画面の下部に配置されていない場合のロジックは含まれていませんでした)。 )。ただし、Windows 7 では、ボリューム コントロールなどのようにその上にホバリングするのではなく、アプリケーションが新しいシステム トレイのポップアウト ボックスを覆い隠してしまいます。
これまでの検索で見た最善の解決策は、NotifyIcon でマウスアップ イベントを処理し、マウス座標を使用してアイコンの位置を決定することです。ユーザーがアイコン内のどこをクリックするかによって位置がわずかに異なるため、理想的ではありませんが、誰かがより良いアイデアを持っていない限り、この方法を使用することになると思います。