如何获取Blazor KeyboardEvents的按键名称及KeyboardEventArgs取值列表
Blazor官方文档中提到的「Key values」遵循W3C键盘事件标准,KeyboardEventArgs.Key 和 KeyboardEventArgs.Code 本质是对浏览器原生KeyboardEvent对应属性的封装,完整的通用取值列表如下:
KeyboardEventArgs.Key 取值列表
Key 值表示按键输入的实际字符,会跟随大小写状态、输入法、修饰键组合变化:
- 可打印字符:直接对应按键输出的实际字符,比如小写字母
a、大写字母A、数字1、特殊符号@等,和输入框内最终输出的字符完全一致 - 常规功能按键:
- 编辑操作类:
Backspace、Tab、Enter、Shift、Control、Alt、CapsLock、Escape、Space、PageUp、PageDown、End、Home、ArrowLeft、ArrowUp、ArrowRight、ArrowDown、Insert、Delete - 功能键类:
F1到F12,部分定制键盘支持F13到F24 - 修饰键类:
Meta(对应Windows系统的Win键、Mac系统的Command键)、ContextMenu、NumLock、ScrollLock、Pause - 多媒体类:
AudioVolumeMute、AudioVolumeDown、AudioVolumeUp、MediaPlayPause、MediaStop、MediaTrackNext、MediaTrackPrevious
- 编辑操作类:
- 未识别按键:固定返回
Unidentified
KeyboardEventArgs.Code 取值列表
Code 值表示键盘物理按键的位置,和输入字符、当前大小写状态、输入法、修饰键状态无关,只要是同一个物理按键就返回固定值:
- 字母区:
KeyA到KeyZ,对应键盘上A到Z的物理按键,比如按下Shift+A时,Key值是A,Code值仍然是KeyA - 数字区:
- 主键盘顶部数字行:
Digit0到Digit9 - 右侧小键盘数字区:
Numpad0到Numpad9,额外包含NumpadAdd、NumpadSubtract、NumpadMultiply、NumpadDivide、NumpadDecimal、NumpadEnter
- 主键盘顶部数字行:
- 功能按键:
- 编辑操作类:
Backspace、Tab、Enter、ShiftLeft、ShiftRight、ControlLeft、ControlRight、AltLeft、AltRight、CapsLock、Escape、Space、PageUp、PageDown、End、Home、ArrowLeft、ArrowUp、ArrowRight、ArrowDown、Insert、Delete - 功能键类:
F1到F12 - 修饰键类:
MetaLeft、MetaRight、ContextMenu、NumLock、ScrollLock、Pause - 多媒体类:
AudioVolumeMute、AudioVolumeDown、AudioVolumeUp、MediaPlayPause、MediaStop、MediaTrackNext、MediaTrackPrevious
- 编辑操作类:
注意:小众定制键盘的特殊按键(比如宏按键、厂商自定义功能键)如果未被标准覆盖,两个属性都会返回
Unidentified,不同浏览器、操作系统对少数冷门按键的取值可能存在差异,建议在实际使用的目标环境先做按键测试确认取值。
内容的提问来源于stack exchange,提问作者TGlatzer
相关产品推荐
相关产品推荐

