ContextMenuOpening事件未触发

时间:2011-09-28 06:53:21

标签: c# wpf xaml

我有一个带有上下文菜单的按钮,但我可以将ContextMenuOpening事件转换为triger。

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

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

任何想法如何使这项工作?

感谢。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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)
    {

    }