2011-09-28 66 views
3

我有一个带有上下文菜单的按钮,但是我可以让ContextMenuOpening事件触发triger。ContextMenuOpening事件没有被触发

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

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

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

谢谢。

回答

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) 
    { 

    } 
+0

很奇怪,无法理解为什么它不工作,它的外观非常好。 – Kobe

+0

您需要搜索另一个问题。 – Samich

2

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