VirtualKey 检测何时被按住
Posted
技术标签:
【中文标题】VirtualKey 检测何时被按住【英文标题】:VirtualKey detect when is held down 【发布时间】:2019-10-14 12:09:22 【问题描述】:我试图让当你按下一个键时它会连续移动。但是,当按下它时,它会移动一次并等待一秒钟,然后再继续。我正在使用:
Window.Current.CoreWindow.KeyDown += CoreWindow_KeyDownAsync;
并检查方法:
args.VirtualKey == Windows.System.VirtualKey.S;
有没有办法让它在那一秒内不暂停,我只想继续按住那个键。
【问题讨论】:
【参考方案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();
【讨论】:
以上是关于VirtualKey 检测何时被按住的主要内容,如果未能解决你的问题,请参考以下文章