Вопрос по mouseevent, c#, wpf – Получение сдвиг / Ctrl / Alt состояния от события мыши?

14

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

Ваш Ответ

2   ответа
19

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

Как раздражает ... если я правильно понимаю, это означает, что если пользователь отпускает клавиатуры между временем, что событие мыши срабатывает и когда обработчик события опрашивает клавиатуру, он обнаружит неправильные ключевые государства. M. Dudley
@ M.Dudley Это не такт важно захватывать ли состояние клавиатуры или WPF делает ... мышь и клавиатура не пересекаются, так что состояние гонки неизбежно. Jim Balter
18

вы используете 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");
    }
}

С уважением, Майк

Похожие вопросы