Получение состояний shift/ctrl/alt из события мыши?

В моем приложении WPF, как мне получить состояние ключей shift, ctrl и alt в обработчике событий мыши? Я, кажется, помню, в MFC вы могли получить эту информацию из события мыши.

Ответы

Ответ 1

Предполагая, что вы все еще находитесь в обработчике событий мыши, вы можете проверить значение Keyboard.Modifiers. Я не думаю, что в любом случае вы получите информацию о модификаторе из самого события, поэтому вам нужно напрямую допросить клавиатуру.

Ответ 2

В соответствии с ответом Энди вы используете Keyboard.Modifiers. Я подумал, что отправлю небольшой пример

Что-то вроде этого в вашем обработчике событий должно работать:

private void MyExampleButton_Click(object sender, RoutedEventArgs e)
{
    if ((Keyboard.Modifiers & ModifierKeys.Control) > 0) {
        System.Diagnostics.Debug.WriteLine("Control is pressed");
    } else {
        System.Diagnostics.Debug.WriteLine("Control is NOT pressed");
    }
}

С уважением, Mike