.net 调用上下文菜单以打开

.net 调用上下文菜单以打开,.net,wpf,click,contextmenu,double-click,.net,Wpf,Click,Contextmenu,Double Click,我需要像谷歌地图那样做(但在WPF): 当右键单击地图上的时,我有一个上下文菜单 当右双击时我有取消缩放动作 显然,这在WPF中有点困难。。。 在苦苦挣扎和搜索了很多之后,读到有人抱怨“我们无法预测未来”(我问自己谷歌如何预测未来),我决定“等待”系统信息。双击时间,然后才显示一个上下文菜单 当然,这是不理想的,即使人类可以观察到,但我不知道其他方法 因此,以下代码的问题是(我有一个自定义画布): 一切都很好,但有一个小问题:base.OnContextMenuOpening(lastCon

我需要像谷歌地图那样做(但在
WPF
):

  • 右键单击地图上的
    时,我有一个上下文菜单
  • 右双击时
    我有取消缩放动作
显然,这在WPF中有点困难。。。 在苦苦挣扎和搜索了很多之后,读到有人抱怨“我们无法预测未来”(我问自己谷歌如何预测未来),我决定“等待”系统信息。双击时间,然后才显示一个上下文菜单

当然,这是不理想的,即使人类可以观察到,但我不知道其他方法

因此,以下代码的问题是(我有一个自定义画布):

一切都很好,但有一个小问题:
base.OnContextMenuOpening(lastContextMenuEventArgs)似乎不起作用

我在前面

if (this.ContextMenu != null)
{
  this.ContextMenu.PlacementTarget = this;
  this.ContextMenu.IsOpen = true;
}
这是可行的,但最后它阻止子contextMenu元素打开,并始终打开父(画布)contextMenu


我可以调用contextMenu事件吗?

我对WPF不太了解,但是您可以显示菜单,比如说,离光标一个像素远的地方,看看用户是否在同一点和系统双击时间再次右键单击?我曾经在一场比赛中使用过类似的技术,它的表现足够好。
菜单“淡入”(也可以选择淡出)动画可以让效果更好。

问题在于:A)关联菜单在鼠标位置自动打开(这是因为我阻止了上下文菜单的打开);b) 我不应该阻止子元素上下文菜单(例如,城市上下文菜单或道路上下文菜单)。孩子们也会经历同样的事件上下文菜单打开。。。
if (this.ContextMenu != null)
{
  this.ContextMenu.PlacementTarget = this;
  this.ContextMenu.IsOpen = true;
}