Windows 8 Metro专注于网格

Con*_*nor 2 c# xaml microsoft-metro windows-8 winrt-xaml

我正在尝试使用c#和xaml制作一个简单的Windows 8地铁游戏.我一直无法解决KeyDown事件.我想这可能是因为网格没有焦点.如果是这种情况,我将如何在我的代码中给出网格焦点?谢谢你的帮助.

这是我的代码:xaml中的网格

    <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}" 
      KeyDown="Grid_KeyDown" KeyUp="Grid_KeyUp" x:Name="myGrid"
      >
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="auto" />
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
    <StackPanel Orientation="Vertical">
        <StackPanel Orientation="Horizontal">
            <TextBlock FontSize="30" Margin="10" x:Name="statusBox">Status</TextBlock>
        </StackPanel>
    </StackPanel>
Run Code Online (Sandbox Code Playgroud)

和c#中的事件处理程序

    private void Grid_KeyDown(object sender, KeyRoutedEventArgs e)
    {
        statusBox.Text = "Key down";
    }
Run Code Online (Sandbox Code Playgroud)

JP *_*oto 11

将事件挂钩在CoreWindow级别而不是网格级别.在你的C#中,做一些像...

CoreWindow.GetForCurrentThread().KeyDown += Window_KeyDown;
Run Code Online (Sandbox Code Playgroud)

Window_Keydown是一种替代当前Grid_KeyDown的方法.