我有一个带有上下文菜单的按钮,但我可以将ContextMenuOpening事件转换为triger。
<Button Name="a_button"
ContextMenu="{StaticResource MyContextMenu}"
ContextMenuOpening="MyContextMenu_Opening" >
</Button>
private void MyContextMenu_Opening(object sender, ContextMenuEventArgs e)
{
// doesnt get here.
}
任何想法如何使这项工作?
感谢。
答案 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)
{
}