如何检测C#Metro应用程序中是否按下了按键?

如何检测C#Metro应用程序中是否按下了按键?,c#,keyboard,microsoft-metro,keyboard-events,windows-store,C#,Keyboard,Microsoft Metro,Keyboard Events,Windows Store,我有一个使用循环帧的游戏。 对于每个循环,我需要知道是否按下了任何游戏键(Arrows/Crtl/Space) 我是用Win32 dll来做这件事的,很简单,但是Metro应用程序不能使用这个dll 因此,我尝试使用CoreWindow.GetForCurrentThread().GetKeyState,但这非常糟糕(非常糟糕) 然后我尝试使用Canvas/MainPage事件KeyUp/KeyDown,但是这个事件没有检测到控件的向上/向下,我需要这个 我还可以使用什么策略?有人有同样的挑战吗

我有一个使用循环帧的游戏。 对于每个循环,我需要知道是否按下了任何游戏键(Arrows/Crtl/Space)

我是用Win32 dll来做这件事的,很简单,但是Metro应用程序不能使用这个dll

因此,我尝试使用
CoreWindow.GetForCurrentThread().GetKeyState
,但这非常糟糕(非常糟糕)

然后我尝试使用Canvas/MainPage事件KeyUp/KeyDown,但是这个事件没有检测到控件的向上/向下,我需要这个

我还可以使用什么策略?有人有同样的挑战吗


谢谢

要检测
keyDown
事件上的控件和空格,您可以使用
e.Modifiers==Keys.Control
和…@Mehran,这并不是那么简单。我可以这样做,以了解在按下某个键时是否按下了控件,我需要知道是否单独按下了
Ctrl
。。。在
键下
事件中,当用户单独按下
Ctrl
时,不会触发该事件。