私はWPFポップアップの問題に頭を悩ませてきました.誰かが私を助けてくれることを望んでいます:)概要は次のようになります:
私たちのアプリは UIObjects のリストを保存します。これらはビューポート 3d (メンバー UIRenderObject を介して、その上にビットマップを持つ平らな正方形のメッシュ) とツリービュー (メンバー TreeViewItem を介して) に表示される要素を表します。
いずれの場合も、オブジェクトが右クリックを検出すると、ポップアップを開こうとします。そのためのコードは、あなたが得ることができるのと同じくらい簡単です:
ContextMenu contextMenu = new ContextMenu();
//add content
contextMenu.IsOpen = true;
ビューポートをクリックすると、すべてが期待どおりに機能します。ポップアップが開き、フォーカスが失われるか、選択が行われるまで開いたままになります。ただし、ツリー ビューでは、ポップアップはフォーカスを失い、すぐに閉じます。
フォーカスを明示的に設定し、PlacementTarget を明示的に設定し、ポップアップを開く呼び出しの前後にマウス イベントを処理済みとしてマークし、ポップアップを「StaysOpen」としてマークし、その他多数のことを試みましたが、それでもすぐに閉じます。 .
どんな助けでも大歓迎です。前もって感謝します!