如果我右键单击图像,我会得到以下事件(按顺序显示):
1) 鼠标右键按下
2) PreviewMouseRightButtonUp
3) 鼠标右键按钮向上
此时我的应用程序显示一个上下文菜单。如果它是打开的,我再次右键单击图像,我只会得到这个事件:
1) 鼠标右键按下
当上下文菜单打开时,不确定如何获取这些事件?
如果我右键单击图像,我会得到以下事件(按顺序显示):
1) 鼠标右键按下
2) PreviewMouseRightButtonUp
3) 鼠标右键按钮向上
此时我的应用程序显示一个上下文菜单。如果它是打开的,我再次右键单击图像,我只会得到这个事件:
1) 鼠标右键按下
当上下文菜单打开时,不确定如何获取这些事件?
您如何跟踪事件?你有什么代码?你用Snoop检查过事件吗?它具有非常好的功能,您可以在其中跟踪所有路由事件。它总是可以帮助您找出谁在处理什么:(
来源:blois.us)
它表明 PreviewMouseUp 总是来的,无论 ContextMenu 是否打开......
PS:我知道,在你回答之前的问题之前我不应该写这个,但是你有没有试过:
img.AddHandler(PreviewMouseUpEvent, new MouseButtonEventHandler(ImgPreviewMouseUp), true /* Handled events too */);
void ImgPreviewMouseUp(object sender, MouseButtonEventArgs e)
{
//
}
:)