我想知道何时按下或释放修改后的键(Ctrl 或 Shift)。
基本上,用户可以在按下修改键的情况下执行多次击键,而我不想在它被释放之前执行一个操作(想想 Emacs 和 Ctrl + X + S).
我试图用 PreviewKeyUp 和 PreviewKeyDown 来做到这一点,但这似乎处理普通键而不是修饰符。一旦我在事件中,我就可以判断修改键是否被按下,但我无法判断修改键是否在事件之间被释放和重新按下。
最佳答案
protected override void OnPreviewKeyDown(KeyEventArgs e)
{
// I just picked that key for a sample
case Key.Tab:
if (Keyboard.IsKeyDown(Key.LeftShift) ||
Keyboard.IsKeyDown(Key.RightShift))
{
DoMyStuff();
}
// Similar things for Ctrl:
if (Keyboard.IsKeyDown(Key.LeftCtrl) ||
Keyboard.IsKeyDown(Key.RightCtrl))
{
....
}
关于c# - 如何判断修改键何时被按下/释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10353572/