如何检测Alt Gr按键?
我将KeyDown
事件附加到WPF窗口。
当我按 Alt Gr 时,Key
对象中的KeyEventArg
参数等于LeftCtrl
。
当我检查Keyboard.IsKeyDown
和Keyboard.Modifiers
时,它始终会返回Control
键。
如何检测AltGr
按键?最好的方法是什么?
答案 0 :(得分:1)
你有没有试过这个:
void MainWindow_KeyDown(object sender, KeyEventArgs e) {
if (e.Key == Key.RightAlt)
{
// Do something
} }
如果没有,请定义您已经尝试过的内容。
答案 1 :(得分:0)
看起来这篇文章回答了你的问题:
How to distinguish between multiple key combination in wpf/c#
具体来说,这段代码就是你如何看待按AltGr键:
private void WindowKeyDown(object sender, KeyEventArgs e)
{
var alt = e.KeyboardDevice.Modifiers.HasFlag(ModifierKeys.Alt);
var ctrl = e.KeyboardDevice.Modifiers.HasFlag(ModifierKeys.Control);
var altGr = alt & ctrl;
var shift = e.KeyboardDevice.Modifiers.HasFlag(ModifierKeys.Shift);
}
这是因为Alt GR注册为" ALT + LEFT CTRL"通过Windows
答案 2 :(得分:0)
我找到了解决问题的方法。 /etc/portage/something
由AltGr
组件处理。
我将Menu
事件更改为KeyDown
,所以现在我正确地抓住了KeyUp
。