Как определить состояния ключа-модификатора в WPF?
Есть ли какие-то глобальные конструкции, которые я могу использовать, когда мне нужно получить доступ к кнопкам Control, Shift, Alt? Например, внутри MouseDown события TreeView.
Если да, то как?
Ответ 1
Использовать класс Keyboard. Используя Keyboard.IsKeyDown, вы можете проверить, отключены ли Control, Shift, Alt.
Для Shift:
if (Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift))
{ /* Your code */ }
Для управления:
if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl))
{ /* Your code */ }
Для Alt:
if (Keyboard.IsKeyDown(Key.LeftAlt) || Keyboard.IsKeyDown(Key.RightAlt))
{ /* Your code */ }
Ответ 2
Там также:
// Have to get this value before opening a dialog, or user will have released the control key
if ((Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control)
{
}