如何在文本框中使用父级的上下文菜单

时间:2015-05-04 12:47:17

标签: wpf textbox listbox contextmenu parent

我有一个包含多个控件的列表框。每个控件都包含一个自定义自动完成框,其中包含System.Windows.Controls.AutoCompleteBox。当我右键单击控件时,会出现一个自定义上下文菜单。但是右键单击文本框会出现TextBox的默认上下文菜单(包含“复制”,“剪切”和“粘贴”)。

我的目标是通过右键单击TextBox来显示我的自定义上下文菜单。

进一步的信息: 我的自定义上下文菜单是在ListBox的DataTemplate中定义的,但我可以在Ressources或其他地方定义它。

我试过了: - 当我取消自定义自动完成框或System.Windows.Controls.AutoCompleteBox的上下文菜单时,它根本没有效果

感谢您的帮助;)

2 个答案:

答案 0 :(得分:1)

您可以将上下文菜单属性绑定到父元素的上下文菜单,也可以在resource.xaml中定义后绑定到上下文菜单

答案 1 :(得分:0)

尝试使用PreviewMouseDown而不是MouseDown来处理MouseDown事件。

在XAML中:

<ListBox Margin="3" PreviewMouseDown="MouseDownOnListBox">

在代码中:

    private void MouseDownOnListBox(object sender, MouseButtonEventArgs e)
    {
        if (e.ChangedButton == MouseButton.Right)
        {
            //Display your context menu
        }
    }

如果您在列表中使用PreviewMouseDown,当您单击列表中的任意位置时,将首先触发此事件。