Условие нажатия клавиши Ctrl в обработчике событий WPF MouseLeftButtonDown - PullRequest
33 голосов
/ 07 декабря 2009

Как добавить дополнительное условие для определенной клавиши клавиатуры в обработчик событий WPF MouseLeftButtonDown?

Например Ctrl + клавиша

private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{         
    ...
}

Ответы [ 3 ]

61 голосов
/ 07 декабря 2009
private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) {
    if(Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl)) {
        MessageBox.Show("Control key is down");
    } else {
        MessageBox.Show("Control key is up");
    }
}
42 голосов
/ 11 мая 2010

Если вы хотите обнаружить только модификаторы, вы также можете использовать:

if (Keyboard.Modifiers == ModifierKeys.Control) {}
if (Keyboard.Modifiers == ModifierKeys.Shift) {}

и т.д.. Подробнее здесь .

8 голосов
/ 10 декабря 2015

В .NET 4.0 вы можете использовать:

Keyboard.Modifiers.HasFlag(ModifierKeys.Control)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...