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

Jai*_*Oro 3 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>
Run Code Online (Sandbox Code Playgroud)

我在'CS'中写这个:

private void ContextMenu_ContextMenuOpening(object sender, ContextMenuEventArgs e)
{
    MessageBox.Show("OPPENING");
}
Run Code Online (Sandbox Code Playgroud)

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

ser*_*nko 9

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

<Border ContextMenuOpening="ContextMenu_ContextMenuOpening">
    <Border.ContextMenu>
        <ContextMenu >
            <MenuItem Header="Select pic" />
            <MenuItem Header="Paste pict" Name="miPaste" />
        </ContextMenu>
    </Border.ContextMenu>
</Border>
Run Code Online (Sandbox Code Playgroud)

希望这有帮助,问候