23

一位朋友在弄清楚如何将“Ctrl + +”作为快捷键分配给ToolStripMenuItem. 我指出该Keys.OemPlus键可以工作,并且需要设置快捷方式的显示字符串,但Keys枚举让我感到困惑。

这些“OEM”密钥是怎么回事?我做了一些搜索,似乎是因为这些键仅在 Win2k 或更高版本中受支持,但这似乎很荒谬,因为我确信在 Win2k 之前的几十年里人们一直在使用加键。为什么没有“OemEquals”?Keys枚举中是否还有其他完全不存在的键?

我主要是在寻找为什么这些特殊命名值存在的答案,但我很想听听关于其他问题的讨论。是否可以安全地假设,因为加号位于我键盘上的等号之上,所以使用Keys.OemPlus并检查 Shift 修饰键可以判断是否单击了 Ctrl + =?还有其他省略的键吗?

请注意,这不是WPF 问题,尽管System.Windows.Forms.KeysSystem.Windows.Input.Key枚举看起来相同(尽管Key根据框架设计指南命名不正确;))

4

2 回答 2

31

它们是随 Windows API 引入的,它们并不特定于 WPF。

首先,这些是KEY代码,而不是字符代码:它们标识键盘上的键,而不是字符 - 例如,“A”字符通常是通过在按住 SHIFT 键的同时按下 A 键或激活 CAPS LOCK 来生成的。

OEM 键随本地键盘而变化的键。美式键盘有括号和大括号,德式键盘有变音符号。

它们被称为“OEM”,因为(键盘的)原始设备制造商负责定义它们的功能。

于 2009-02-24T16:45:03.087 回答
-2

OEM 的意思是“原始设备制造商”(或相对接近的东西)。我认为这是 WPF 方面的一种尝试,它在某种程度上是平台中立的。不过,这只是一种意见。

于 2009-02-24T16:34:23.363 回答