Какое ключевое перечисление клавиш поверх цифровых клавиш, отличных от Numpad?

#c# #wpf #keyboard #keyboard-shortcuts

#c# #wpf #клавиатура #сочетания клавиш

Вопрос:

Кажется, я не могу найти ключевые перечисления некоторых клавиш ниже. Я также прочитал это: http://msdn.microsoft.com/en-us/library/system.windows.forms.keys.aspx и до сих пор ничего не нашел (или, может быть, я это пропустил).

введите описание изображения здесь

Вопросы :

  1. Какое ключевое перечисление клавиш в красной рамке на картинке выше?
  2. Oemtilde В данной ссылке есть какие-либо идеи, что это за ключ?

Спасибо.

(Мой язык программирования — C #, и я кодирую в WPF)

Ответ №1:

Я не думаю, что для этих ключей есть отдельные перечисления. Это Key.D1 to Key.D0 и Key.Oem3 (для tilda). Вы можете определить, какая из них была нажата, проверив Keyboard.Modifiers == ModifierKeys.Shift в любой точке вашего кода.

т.е. если нажата клавиша is Key.D1 и Keyboard.Modifiers is ModifierKeys.Shift , это означает '!' , что была нажата

Комментарии:

1. Просто убедитесь, что вы проверяете modifier с (e.KeyboardDevice.Modifiers amp; ModifierKeys.Shift) == ModifierKeys.Shift помощью , потому что одновременно может быть нажато более одной клавиши-модификатора.

2. Какая разница, если я проверю модификаторы, используя, например, if(Keyboard.IsKeyDown(Key.LeftCtrl)||Keyboard.IsKeyDown(Key.RightCtrl)){//Code} ? Это только для упрощения кода?

Ответ №2:

Как насчет запуска приложения, нажатия клавиши на клавиатуре и проверки значения KeyEventArgs.Key ?

 private void MainWindow_OnKeyDown(object sender, KeyEventArgs e)
{
    Console.WriteLine(e.Key);
}
 

Показывает Oem3 для tilda.

Комментарии:

1. Он всегда обнаруживает LeftShift Something , а не само Key имя. Или, может быть, именно так нам нужно получить к нему доступ, поскольку у него нет определенного имени?