2011-03-17 27 views
3

在此簡單示例中,我想在顯示上下文菜單之前顯示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"); 
} 

我不知道爲什麼,當我按下權鼠標按鈕,出現上下文菜單,但不顯示MessageBox。

+0

你有沒有嘗試使用'PreviewMouseDown'? – 2011-03-17 00:22:21

+0

@kzen我已經嘗試過了,但它無法正常工作:s – 2011-03-17 00:27:22

回答

9

我認爲ContextMenuOpening事件應該爲上下文菜單打開的控件定義,而不是上下文菜單本身。看看下面的代碼會爲你工作:

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

希望這會有所幫助,至於

相關問題