我写了一个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);
}