我的WPF应用程序处理键盘按键,特别是#和*字符,因为它是一部VoIP电话.
我有一个国际键盘,特别是英国英语键盘的错误.通常我会听3键,如果shift键修改器关闭,我们会触发一个事件来做事情.然而在英国键盘上,这是'£'字符.我发现英国英语键盘有一个专用的'#'键.显然我们可以只听那个特定的键,但这并不能解决美国英语的问题,即shift-3和所有无数其他键盘都把它放在其他地方.
简而言之,我如何通过按键来聆听特定角色,无论是关键组合还是单键并对其作出反应?
我正在编写自定义文本编辑器,我使用KeyDown和KeyUp事件.该事件从包含"Key"实例的参数获取KeyEventArgs.
我怎样才能将"钥匙"变成真正的焦炭?
使用Key.ToString()和"." 我得到一个"OmePeriod"或","我得到一个"OmeComma".我可以直接转换这些值...但这是一项艰苦的工作,我确信必须存在任何将Key转换为真正的"char"的类.
谢谢!
问候.
我想写一个这样的函数,
public System.Windows.Input.Key ResolveKey(char charToResolve)
{
// Code goes here, that resolves the charToResolve
// in to the Key enumerated value
// (For example with '.' as the character for Key.OemPeriod)
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以写一个巨大的Switch-case来匹配角色,但还有其他方法吗?这个问题是Key枚举的字符串可能与字符不匹配,因此Enum.IsDefined不起作用
有任何想法吗?
更新:这是在Windows环境中