VirtualKey检测何时按下

时间:2019-05-28 23:04:11

标签: c# uwp

我试图获得当您按下该键时按住该键连续移动。但是,当按下它时,它移动一次,然后等待一秒钟,然后继续。我正在使用:

Window.Current.CoreWindow.KeyDown += CoreWindow_KeyDownAsync; 

并获取方法:

args.VirtualKey == Windows.System.VirtualKey.S;

有没有办法在那一秒内不暂停,我只想继续按住该键即可。

1 个答案:

答案 0 :(得分:1)

您无法在此处影响系统报告KeyDown事件的速度,但是您也可以订阅KeyUp,并假定在第一次报告事件之间按下了键。 KeyDown直到出现相应的KeyUp-

Window.Current.CoreWindow.KeyDown += CoreWindow_KeyDown;
Window.Current.CoreWindow.KeyUp += CoreWindow_KeyUp;

方法:

private void CoreWindow_KeyDown(
   Windows.UI.Core.CoreWindow sender, 
   Windows.UI.Core.KeyEventArgs args)
{
    if (args.VirtualKey == Windows.System.VirtualKey.S)
    {
        //StartMoving(); (or keep moving if already started previously)
    }
}

private void CoreWindow_KeyUp(
   Windows.UI.Core.CoreWindow sender, 
   Windows.UI.Core.KeyEventArgs args)
{
    if (args.VirtualKey == Windows.System.VirtualKey.S)
    {
        //StopMoving();
    }
}