如何取消上下文菜单打开的事件?

M.C*_*.C. 7 wpf contextmenu

我想取消TreeViewItem的上下文菜单打开事件

private void ContextMenu_Opened(object sender, RoutedEventArgs e)
    {
        e.Handled = true;
    }
Run Code Online (Sandbox Code Playgroud)

我认为这应该工作,但我得到一个没有菜单项的小上下文菜单,但我想没有任何东西出现.谢谢

dow*_*for 11

您应该使用ContextMenuOpening拥有上下文菜单的控件的事件,该菜单在上下文菜单打开之前触发.在那里,您可以更改上下文菜单或禁止它.如果您使用该Opening事件,您的压缩事件代码将起作用,请参阅此文章以获取更多信息.

  • 尔加!点击鼠标击败我!只是为了澄清,此事件将在所有者控件上处理.示例:this.ContextMenuOpening (5认同)
  • 总之,在“ContextMenuOpening”事件处理程序中设置“e.handled = true;”。 (2认同)