Обнаружение пользователя, нажатия F10 in WPF

Моему приложению WPF инициировали поведение ключи функций (F1-F12).

Мой код приезжает эти строки:

private void Window_KeyDown(object sender, KeyEventArgs e)
{
    switch (e.Key)
    {
        case Key.F1:
        ...
        case Key.F2:
        ...
    }
}

Это работает на все F-ключи кроме F10. Отладка, я нахожу это e.Key == Key.System когда пользователь нажимает F10.

В перечислимом определении, F10 = 99 и System = 156, таким образом, я могу исключить его являющийся дублирующимся перечислением значений (как PageDown = Next = 20).

Так, как я говорю, когда пользователь нажимает F10?

Действительно ли безопасно проверить на Key.System вместо этого? Это чувствует себя немного грязным - мог бы это быть возможным это Key.System когда-либо следовал бы из некоторой другой нажатой клавиши? Или есть ли некоторая установка где-нибудь, которая сделает отчет о F10 как Key.F10?

17
задан Dave Clemmer 16 September 2011 в 18:29
поделиться

2 ответа

В дополнение к ответу Yacoder, используйте следующее для проверки клавиши F10:

case Key.System:
  if (e.SystemKey == Key.F10)
  {
    // logic...
  }

Свойство SystemKey сообщит вам, какая клавиша System была нажата.

17
ответ дан 30 November 2019 в 13:45
поделиться

F10 запускает меню окна. Это то же самое во всех приложениях Windows.

Похоже, что key.system - ожидаемое значение для ключа F10.

3
ответ дан 30 November 2019 в 13:45
поделиться
Другие вопросы по тегам:

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