检测用户在WPF中按F10

tee*_*yay 17 wpf keyboard-events

我的WPF应用程序具有由功能键(F1- F12)触发的行为.

我的代码是这样的:

private void Window_KeyDown(object sender, KeyEventArgs e)
{
    switch (e.Key)
    {
        case Key.F1:
        ...
        case Key.F2:
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

这适用于所有F键,除了F10.调试时,我发现e.Key == Key.System当用户按下时F10.

在枚举定义,F10 = 99并且System = 156,这样我就可以排除它是一个重复的枚举值(像PageDown = Next = 20).

那么,如何判断用户何时按下F10

Key.System相反,检查是否安全?这感觉有点脏 - 可能是Key.System因为某些其他键被按下而导致的?或者是否有某些设置将F10报告作为Key.F10

Wil*_*ins 17

除了Yacoder的回复,请使用以下内容检查F10密钥:

case Key.System:
  if (e.SystemKey == Key.F10)
  {
    // logic...
  }
Run Code Online (Sandbox Code Playgroud)

SystemKey属性会告诉你哪个系统键被按下.