上下文菜单打开事件未触发。

3

我有一个带上下文菜单的按钮,但是我只能触发ContextMenuOpening事件。

<Button Name="a_button"
        ContextMenu="{StaticResource MyContextMenu}"
        ContextMenuOpening="MyContextMenu_Opening" >
</Button>

private void MyContextMenu_Opening(object sender, ContextMenuEventArgs e)
{
   // doesnt get here.
}

有什么想法可以让这个工作?谢谢。
2个回答

2

ContextMenuOpening事件必须在ContextMenu的祖先元素上处理,而不是在ContextMenu本身上处理。如果您尝试在ContextMenu上处理它,则只有在右键单击打开ContextMenu后才会触发该事件。


1

我刚刚检查了你的代码,它完美地运行了。

这是我的完整XAML:

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Window.Resources>
        <ContextMenu x:Key="MyContextMenu">
            <MenuItem Header="Send" />
        </ContextMenu>
    </Window.Resources>
    <Grid>
        <Button Name="a_button"
                ContextMenu="{StaticResource MyContextMenu}"
            ContextMenuOpening="MyContextMenu_Opening" >
        </Button>
    </Grid>
</Window>

以及*.cs文件:

    private void MyContextMenu_Opening(object sender, ContextMenuEventArgs e)
    {

    }

非常奇怪,不明白为什么它不工作,看起来完全没问题。 - Adrian
你需要寻找另一个问题。 - Samich

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接