在Windows应用商店/ winRT中检测多个键盘按下

时间:2013-07-26 18:06:08

标签: c# windows-runtime

当用户按下UP + RIGHT + A时,我必须执行任务。

UP,RIGHT和A中的每一个都有自己不同的功能。只是在被压在一起时所有这些都应该发生但不幸的是当我尝试使用KeyDown时,只有A被执行:-(

无论如何使用KeyDown或任何其他方式使用其他任何方式吗?

UP,RIGHT和A是keyBoard Buttons ..

此代码无效: -

if (e.Key == VirtualKey.Up  ) {
           .... 
}
if(e.key == VirtualKey.Down) {
            .....   
}
if(e.key == VirtualKey.A) {
             ...
}

...

 

1 个答案:

答案 0 :(得分:1)

当然它不起作用,因为eKeyEventArgs的一个实例,因此它只代表一个键。但是,我认为,即使同时按下每个按下的键,也会调用KeyDown事件。那么,您需要做的是:

  1. 创建一个IEnumerable of Keys,例如可以是List
  2. 创建一个bool,指示是否至少有一个键已关闭,您可以通过KeyX事件控制该键。如果您需要帮助,请发表评论。
  3. 在KeyDown事件中,将e.key添加到该列表,并在值设置为false时清除它
  4. 您现在有一个包含当前所有键的列表,您可以使用它来检查多个按键。 如果你需要一个代码示例,我会添加它。