C#とXAMLを使用して、Windowsストア用のゲームを作成しています。私のすべてのゲームオブジェクトには、ビューを説明するキャンバスがあります。これらのキャンバスは、キャンバス(gameRoot)に表示されます。
プレーヤーが押したキーに基づいてプレーヤーを動かしたい(たとえば、Wが上がる)。これが私の表示ページです:
<Page
x:Class="Labyrinth_XAML.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Labyrinth_XAML"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Canvas x:Name="gameRoot" KeyDown="gameRoot_KeyDown_1">
<Button>Vakanu</Button>
</Canvas>
</Page>
イベントハンドラーにブレークポイントを作成しましたが、KeyDownイベントが発生しません。いくつかのグーグルの後、Canvasイベントにボタンを作成するとイベントが発生することがわかりました。しかし、削除してもイベントは発生しません。ボタンの外のどこかをクリックすると、イベントは二度と発生しません。
私の質問は、どの要素にフォーカスがあるかに関係なく、ページ内のキーを押すたびに起動するキーボードイベントハンドラーを作成するにはどうすればよいですか?