【问题标题】:VirtualKey detect when is held downVirtualKey 检测何时被按住
【发布时间】:2019-10-14 12:09:22
【问题描述】:

我试图让当你按下一个键时它会连续移动。但是,当按下它时,它会移动一次并等待一秒钟,然后再继续。我正在使用:

Window.Current.CoreWindow.KeyDown += CoreWindow_KeyDownAsync; 

并检查方法:

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

有没有办法让它在那一秒内不暂停,我只想继续按住那个键。

【问题讨论】:

    标签: c# uwp


    【解决方案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();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-01
      • 2012-07-27
      • 1970-01-01
      • 2012-04-04
      • 1970-01-01
      相关资源
      最近更新 更多