Jes*_*ndo 19 c# wpf text-editor keydown
我正在编写自定义文本编辑器,我使用KeyDown和KeyUp事件.该事件从包含"Key"实例的参数获取KeyEventArgs.
我怎样才能将"钥匙"变成真正的焦炭?
使用Key.ToString()和"." 我得到一个"OmePeriod"或","我得到一个"OmeComma".我可以直接转换这些值...但这是一项艰苦的工作,我确信必须存在任何将Key转换为真正的"char"的类.
谢谢!
问候.
这里的主要问题是您捕获的事件是滚轴键盘事件,并且该键确实是键而不是字符。在两者之间是键盘映射!例如,键入shift-A时,您将收到两个事件,而不是按键事件。
这次讨论可以帮助您:C#如何将虚拟键码转换为char?
代替使用KeyDown事件,请尝试使用TextInput事件。附加一个如下所示的事件处理程序:
private void Grid_TextInput(object sender, TextCompositionEventArgs e)
{
Char keyChar = (Char)System.Text.Encoding.ASCII.GetBytes(e.Text)[0];
Debug.WriteLine(keyChar);
}
Run Code Online (Sandbox Code Playgroud)
请注意,这仅捕获第一个字节,并且不适用于国际(Unicode)文本。也可能不适用于更复杂的文本输入事件,因此请注意!
有关更多信息,请参见此MSDN文章。
| 归档时间: |
|
| 查看次数: |
52605 次 |
| 最近记录: |