【问题标题】:WPF ContextMenuOpening event not firing when TextBox has .Text当 TextBox 具有 .Text 时,WPF ContextMenuOpening 事件不会触发
【发布时间】:2018-08-24 04:47:58
【问题描述】:

我有一个最终派生自 TextBox 的用户控件。

我想取消此控件的右键单击上下文菜单。

我添加了一个代码来拦截用户控件上的 ContextMenuOpening 事件并抑制上下文菜单:

ContextMenuOpening +=  HandleIt;
...
private void HandleIt(object sender, ContextMenuEventArgs e)
{
    e.Handled = true;
}

当控件为空(没有 .Text)时,这可以正常工作。

但是,当控件有一些文本时,甚至不会调用 HandleIt()。

我做错了吗?

如何在所有情况下禁止此用户控件的上下文菜单?

【问题讨论】:

  • 如何才能“最终从文本框派生一个用户控件”?

标签: c# wpf contextmenu


【解决方案1】:

如何在所有情况下禁止此用户控件的上下文菜单?

C#:

ContextMenu = null;

或 Xaml:

<TextBox ContextMenu="{x:Null}" />

【讨论】:

  • 这确实完全抑制了上下文菜单(谢谢),但没有解释为什么当控件具有 .Text 时,从 TextBox 派生的控件上的 ContextMenuOpening 事件不会触发。
  • @MikeZ 在某些情况下将ContextMenu 设置为null 不起作用。尝试使用ContextMenu = new ContextMenu { Visibility = Visibility.Collapsed }; 不知道事件问题,我应该测试一下。
猜你喜欢
  • 2011-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多