В моем приложении WPF, когда открывается ContextMenu
, я хочу настроить его пункты меню в зависимости от того, нажата ли клавиша Alt
.WPF: Когда нажата клавиша Alt, мой ContextMenu не откроется
У меня есть логика работы. XAML:
<my:Control ContextMenuOpening="MyContextMenu_Opening" />
Код:
private void MyContextMenu_Opening(object sender, RoutedEventArgs args) {
bool isAltDown = Keyboard.IsKeyDown(Key.LeftAlt);
/* tweak menu items here */
}
Моя проблема заключается в том, что при нажатии клавиши Alt
, открывается контекстное меню, а затем сразу же закрывается (я могу увидеть в блеске его быть открытым, что мой логика, по крайней мере, работает).
Удивительно, что это функция «WPF» вообще, потому что, если я даже держу Alt
, но при нажатии правой кнопкой мыши на TextField
происходит то же самое - встроенное меню Cut/Copy/Paste начинает мигать, а затем немедленно закрывается.
Одна догадка заключается в том, что она имеет какое-то отношение к Alt
, активируя панель меню приложения. Но панель меню приложения не применима к моей ситуации, поэтому, если решение вовлекает в себя это, оно все равно будет работать для меня.
Да, я думаю, мне придется использовать другой модификатор ключа, как вы предлагаете. С тех пор я заметил, что такое поведение происходит прямо в Windows (например, в текстовом поле диалогового окна «Пуск»> «Запуск»), поэтому я полагаю, что WPF, по крайней мере, согласуется с тем, как остальные ОС Windows работают для работы ... – Ross