Как узнать, что одна из кнопок на клавиатуре нажата и удерживается (например, Shift)? - PullRequest
0 голосов
/ 25 февраля 2020

Теперь в моей программе есть кнопка, и пользователь может щелкнуть ее (и процесс запустится), я хотел бы добавить такой функционал - если пользователь нажимает и удерживает кнопку Shift и щелкает левой кнопкой мыши на кнопке, она будет запустить другой процесс ...

Итак, в конце концов мне нужно знать - как отследить (узнать), что пользователь нажал и удерживать кнопку Shift?

Ответы [ 2 ]

2 голосов
/ 25 февраля 2020

Вы должны проверить класс c stati, называемый Keyboard, и проверить Модификаторы примерно так:

Чтобы проверить только сдвиг и не удерживать нажатой другую клавишу:

if (Keyboard.Modifiers == ModifierKeys.Shift)
{
   // some logic
}

Чтобы проверить, удерживается ли shift при игнорировании других клавиш-модификаторов:

if (Keyboard.Modifiers.HasFlag(ModifierKeys.Shift))
{
   // some logic
}

Этот класс c находится в System.Windows.Input пространстве имен.

0 голосов
/ 25 февраля 2020

Вы можете использовать KeyDown и KeyUp, чтобы проверить, нажата или отпущена клавиша, и продолжить на этом:

if (Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift))
{
//Insert logic here, an event is probably the way to go.
}
 if (Keyboard.IsKeyUp(Key.LeftShift) || Keyboard.IsKeyUp(Key.RightShift))
{
//Insert logic here, an event is probably the way to go.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...