c# - 打开上下文菜单之前的事件

标签 c# wpf contextmenu

在这个简单的示例中,我想在显示上下文菜单之前显示一个 MessageBox

我在“XAML”上编写这段代码:

<Border>
    <Border.ContextMenu>
        <ContextMenu ContextMenuOpening="ContextMenu_ContextMenuOpening">
            <MenuItem Header="Select pic" IsEnabled="{Binding Path=ProductSelected}" />
            <MenuItem Header="Paste pict" Name="miPaste" Click="miPaste_Click"/>
        </ContextMenu>
    </Border.ContextMenu>
    <Image Stretch="Fill" Source="{Binding Path=Product.Picture}" />
</Border>

然后我在“CS”中写下:

private void ContextMenu_ContextMenuOpening(object sender, ContextMenuEventArgs e)
{
    MessageBox.Show("OPPENING");
}

我不知道为什么,当我按下鼠标右键时,会出现上下文菜单,但从未显示 MessageBox。

最佳答案

我相信 ContextMenuOpening 事件应该为打开上下文菜单的控件定义,而不是上下文菜单本身。查看以下代码是否适合您:

<Border ContextMenuOpening="ContextMenu_ContextMenuOpening">
    <Border.ContextMenu>
        <ContextMenu >
            <MenuItem Header="Select pic" />
            <MenuItem Header="Paste pict" Name="miPaste" />
        </ContextMenu>
    </Border.ContextMenu>
</Border>

希望这对你有帮助,问候

关于c# - 打开上下文菜单之前的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5333364/

相关文章:

c# - 抽象类的访问修饰符

c# - 日期输入格式

WPF Popup IsOpen 问题

javascript - 为什么我的上下文菜单会在页面顶部添加空白区域?

c# - 将 JSON 用于日常事件日志

C# 在 Deedle Frame 和 DataTable 之间转换

c# - 如何使用 Aspose 加速工作簿创建?

c# - 重绘图像 WPF

jquery - 获取上下文菜单项的值

icons - 在 jstree 上自定义上下文菜单和图标