我在WPF应用程序中捕获按键并获取带有KeyEventArgs
参数的事件。
考虑到特殊键并且按下大写锁定或班次,将该事件转换为易读文本的最佳方法是什么?
我的意思的一些例子。
{Enter}
A
!
(或用户的键盘布局有)@
(或者用户的键盘布局有)到目前为止,我有这个,它不适用于大写或小写,并打破一堆特殊键。
void KeyDownEvent(object sender, KeyEventArgs e)
{
var k = e.KeyCode.ToString();
bool isLetterOrDigit = char.IsLetterOrDigit((char)e.KeyCode);
if (isLetterOrDigit)
{
if (e.Shift)
k.ToUpper();
else
k.ToLower();
}
else
{
k = "{" + k + "}";
}
AddKeyChar(k);
}
我认为这将是一个简单的问题,事实证明它可能不是。 ;)
修改1
输入以下文字:Test With Text and special chars!@
目前转换为:
{LShiftKey} {LShiftKey} {LShiftKey} TEST {空间} {LShiftKey} WITH {空间} {LShiftKey} TEXT {空间} AND {空间} SPECIAL {空间}煤焦{LShiftKey} D1 {LControlKey} {RMenu} D2