7

そこで、私は Windows ストアのペット プロジェクトに取り組んできましたが、ちょっとした障害にぶつかりました。キーボード イベントが発生しません。メイン ページにフォーカスを強制しようとしましたが、グリッドにフォーカスを強制しようとしましたが、何も役に立たないようです。このような問題に遭遇した人はいますか?私のgoogle-fuは失敗しました。

関連コード:

XAML:

<Page
    x:Class="PlatformTD.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:PlatformTD"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}"
          Name="LayoutRoot">
        <Canvas HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
                Name="MainCanvas" x:FieldModifier="public"
                SizeChanged="MainCanvas_SizeChanged"
                Loaded="MainCanvas_Loaded" />
    </Grid>
</Page>

C#:

public MainPage()
{
    this.InitializeComponent();
    MainCanvas.KeyDown += MainPage_KeyDown;
    MainCanvas.KeyUp += MainPage_KeyUp;
    KeyDown += MainPage_KeyDown;
    KeyUp += MainPage_KeyUp;
    LayoutRoot.KeyDown += MainPage_KeyDown;
    LayoutRoot.KeyUp += MainPage_KeyUp;
}
private void MainPage_KeyUp(object sender, KeyRoutedEventArgs e)
{ // breakpoint here to catch when event fires
    // does stuff
}
private void MainPage_KeyDown(object sender, KeyRoutedEventArgs e)
{ // breakpoint here to catch when event fires
    // does stuff
}
4

1 に答える 1

7

このようなものはどうですか:

public MainPage()
{
    this.InitializeComponent();
    Window.Current.CoreWindow.KeyDown += CoreWindow_KeyDown;
    Window.Current.CoreWindow.KeyUp += CoreWindow_KeyUp;
}

void CoreWindow_KeyUp(Windows.UI.Core.CoreWindow sender, Windows.UI.Core.KeyEventArgs args)
{
    throw new NotImplementedException();
}

void CoreWindow_KeyDown(Windows.UI.Core.CoreWindow sender, Windows.UI.Core.KeyEventArgs args)
{
    throw new NotImplementedException();
}

私の側で動作します。解決策はこちらにあります

于 2013-04-09T23:32:38.657 に答える