KeyDown事件处理程序无法正常工作

时间:2014-12-10 13:15:03

标签: c# xaml windows-8.1 keydown

我正在开发适用于Windows 8.1的应用

我正在使用XAML + C#

我在MSDN中阅读了本文中有关响应键盘交互的文章

我按照他们的说法做了,但问题是只有当我按下TextBox

内的某个键时才会发生该事件

但我希望在Page

按下的任何地方都能发生这个事件

注意:我使用笔记本电脑(没有触摸硬件)

XAML:

<Grid x:Name="GameGrid" Margin="0,0,0,0.111" KeyDown="Grid_KeyDown">

C#:

private void Grid_KeyDown(object sender, KeyRoutedEventArgs e)
 {
   if (e.Key == Windows.System.VirtualKey.A)
                    this.DoSomething();
 }

1 个答案:

答案 0 :(得分:1)

尝试在网格上注册加速键而不是键事件(它必须具有焦点才能触发事件):

http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.core.coredispatcher.acceleratorkeyactivated

示例:

Window.Current.Dispatcher.AcceleratorKeyActivated += ...