【问题标题】:Event before the Context Menu is opened打开上下文菜单之前的事件
【发布时间】:2011-03-17 00:15:46
【问题描述】:

在这个简单的示例中,我想在显示上下文菜单之前显示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");
}

我不知道为什么,当我按下鼠标右键时,会出现上下文菜单,但永远不会显示消息框。

【问题讨论】:

  • 您是否尝试过使用PreviewMouseDown
  • @kzen 我试过了,但还是不行:s

标签: c# wpf contextmenu


【解决方案1】:

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

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

希望这会有所帮助,问候

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-01
    • 2015-08-25
    • 1970-01-01
    • 1970-01-01
    • 2015-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多