2015-05-26 28 views
2

我想使用LeftAltRightAlt鍵在打開的ContextMenu中更改MenuItems。我希望這一切都發生在菜單已經打開的時候 - 而不是在單擊鼠標右鍵的時候打開上下文菜單。我做了以下:捕獲WPF中的修飾鍵 - 上下文菜單

ContextMenu.KeyDown += ContextMenu_KeyDown; 

void ContextMenu_KeyDown(object sender, KeyEventArgs e) 
    { 
     if(e.Key == Key.LeftAlt || e.Key == Key.RightAlt) 
     { 
      e.Handled = true; 
      // DEMO 
      MenuItem firstItem = this.ContextMenu.Items[0] as MenuItem; 
      if(firstItem != null) firstItem.Header = "Alt Pressed!"; 
     } 
    } 

不幸的是,這是行不通的。只要我按下Alt鍵,ContextMenu關閉,但我使用e.Handled = true;。爲什麼是這樣?我如何捕捉Alt鍵並更改上下文菜單並保持菜單打開?

回答