2
我想使用LeftAlt
和RightAlt
鍵在打開的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鍵並更改上下文菜單並保持菜單打開?