我如何获得使用 PreviewKeyDownEvent 按下的键。是的,有 KeyEventArgs 返回被按下的键。但我面临的问题是,我无法区分大小写字符
我需要检查此人是否按下了 a 或 A 或任何其他区分大小写的字符
谢谢
我如何获得使用 PreviewKeyDownEvent 按下的键。是的,有 KeyEventArgs 返回被按下的键。但我面临的问题是,我无法区分大小写字符
我需要检查此人是否按下了 a 或 A 或任何其他区分大小写的字符
谢谢
如果PreviewKeyDown
没有直接的方法来获取使用KeyEventArgs
. 您可以尝试使用PreviewTextInput
将给出在属性中输入的实际字符的事件。TexCompositionEventArgs
Text
基本上,您将 的值KeyEventArgs.Key
与您想要的任何键进行比较:
private void PreviewKeyDownHandler(object sender, KeyEventArgs e)
{
if (e.Key == Key.A) DoSomething();
}
如果您想知道是否按下了大写字母,则需要检查该SHIFT
键是否也被按下:
private void PreviewKeyDownHandler(object sender, KeyEventArgs e)
{
if (e.Key == Key.A && Keyboard.Modifiers == ModifierKeys.Shift) DoSomething();
}
更新>>>
如果您还需要检测Caps Lock
按钮是否被按下,您可以检查这种情况:
if (Keyboard.GetKeyStates(Key.CapsLock) == KeyStates.Toggled)
{
if (e.Key == Key.A) DoSomething();
}