画像を右クリックすると、次のイベントが発生します (順番に表示)。
1) マウス右ボタンダウン
2) PreviewMouseRightButtonUp
3) マウス右ボタンアップ
この時点で、アプリケーションにコンテキスト メニューが表示されます。それが開いていて、もう一度画像を右クリックすると、次のイベントのみが発生します。
1) マウス右ボタンダウン
コンテキスト メニューが開いているときにこれらのイベントを取得するにはどうすればよいかわかりませんか?
画像を右クリックすると、次のイベントが発生します (順番に表示)。
1) マウス右ボタンダウン
2) PreviewMouseRightButtonUp
3) マウス右ボタンアップ
この時点で、アプリケーションにコンテキスト メニューが表示されます。それが開いていて、もう一度画像を右クリックすると、次のイベントのみが発生します。
1) マウス右ボタンダウン
コンテキスト メニューが開いているときにこれらのイベントを取得するにはどうすればよいかわかりませんか?
どのようにイベントを追跡しますか? あなたはどんなコードを持っていますか?Snoopでイベントを確認しましたか? ルーティングされたすべてのイベントを追跡できる非常に優れた機能があります。誰が何を処理しているかを知るのに常に役立ちます:
(ソース: blois.us )
そして、ContextMenu が開いているかどうかに関係なく、PreviewMouseUp が常に来ていることを示しています...
PS: 前の質問に答える前にこれを書くべきではないことはわかっていますが、試してみましたか?
img.AddHandler(PreviewMouseUpEvent, new MouseButtonEventHandler(ImgPreviewMouseUp), true /* Handled events too */);
void ImgPreviewMouseUp(object sender, MouseButtonEventArgs e)
{
//
}
:)