我写了一个WPF应用程序,它基本上以全屏模式加载WebBrowser控件 . 它还会禁用某些键盘快捷键和右键功能 . 除了KeyDown事件的问题之外,一切都运行良好 .
按下的按键序列似乎会引起问题 . 如果我先按Control键,keydown事件将无法识别C和L键 . 但是,如果我从C开始然后是L然后按Ctrl - 它工作正常 .
按下按键的顺序:
NOT WORKING: LeftCtrl C L
WORKING: C L LeftCtrl
思考?
private List<Key> _pressed = new List<Key>();
private void Window_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
if (_pressed.Contains(e.Key)) return;
_pressed.Add(e.Key);
if (Keyboard.Modifiers == ModifierKeys.Control && _pressed.Contains(Key.C) && _pressed.Contains(Key.L))
{
_allowClose = true;
this.Close();
e.Handled = true;
}
}
private void Window_KeyUp(object sender, System.Windows.Input.KeyEventArgs e)
{
_pressed.Remove(e.Key);
}