一位朋友在确定如何将"Ctrl + +"指定为快捷键时遇到了麻烦ToolStripMenuItem
.我指出Keys.OemPlus
密钥可以工作,并且需要设置快捷方式的显示字符串,但是Keys
枚举使我神秘.
这些"OEM"钥匙有什么用?我做了一点搜索,似乎是因为密钥只在Win2k或更高版本中得到支持,但这看起来很荒谬,因为我确信人们在Win2k之前已经使用过几十年了.为什么没有"OemEquals"?Keys
枚举中是否还有其他键完全没有?
我主要想找到这些特殊名称存在的原因的答案,但我很乐意听到有关其他问题的讨论.是否可以安全地假设因为加号位于键盘上的等号顶部,使用Keys.OemPlus
并检查Shift修饰键是否可以判断是否单击了Ctrl + =?是否有其他键被省略?
请注意,这不是 WPF问题,尽管System.Windows.Forms.Keys
和System.Windows.Input.Key
枚举看起来相同(尽管Key
根据框架设计指南错误地命名;))
它们是随Windows API引入的,它们并不特定于WPF.
首先,这些是KEY代码,而不是字符代码:它们识别键盘上的键,而不是字符 - 例如,通过按住A键同时按住SHIFT键或激活CAPS LOCK,可以生成"A"字符.
该OEM密钥是按键与当地的键盘有所不同.美国键盘有支架和支架,德国键盘有变音符号.
它们被称为"OEM",因为原始设备制造商(键盘)负责定义其功能.