Мое приложение 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
?