C# 在windows应用商店应用程序/winRT中检测多个键盘按下

C# 在windows应用商店应用程序/winRT中检测多个键盘按下,c#,windows-runtime,C#,Windows Runtime,当用户按UP+RIGHT+a时,我必须执行一项任务 UP、RIGHT和A三者各自有不同的功能。只是当它们被压在一起时,所有这些都应该发生,但不幸的是,当我尝试使用键按下时,只有一个被执行:-( 是否有任何方法可以使用键下键或任何其他方法来完成此操作 向上、向右和A是键盘按钮 此代码不起作用:- if (e.Key == VirtualKey.Up ) { .... } if(e.key == VirtualKey.Down) { .....

当用户按UP+RIGHT+a时,我必须执行一项任务

UP、RIGHT和A三者各自有不同的功能。只是当它们被压在一起时,所有这些都应该发生,但不幸的是,当我尝试使用
键按下时,只有一个被执行:-(

是否有任何方法可以使用
键下键
或任何其他方法来完成此操作

向上、向右和A是键盘按钮

此代码不起作用:-

if (e.Key == VirtualKey.Up ) { .... } if(e.key == VirtualKey.Down) { ..... } if(e.key == VirtualKey.A) { ... } ... if(e.Key==VirtualKey.Up){ .... } if(e.key==VirtualKey.Down){ ..... } if(e.key==VirtualKey.A){ ... } ...
当然,它不起作用,因为
e
是的一个实例,因此它只代表一个键。但是,我认为,即使同时按下每个键,也会调用KeyDown事件。因此,您需要执行以下操作:

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

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

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