C# 및 XAML을 사용하여 Windows Store 용 게임을 만들고 있습니다. 내 모든 게임 객체에는 캔버스가 있으며,이 캔버스는 자신의 시각을 묘사합니다. 이러한 캔버스는 캔버스 (gameRoot)에 표시됩니다.Windows에서의 키보드 처리 8 XAML 기반 게임
내가 누른 키 (예 : 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 이벤트가 실행되지 않습니다. 일부 구글 후, 내 캔버스 이벤트에 버튼을 만들면 알아 냈어. 하지만 제거하면 이벤트가 시작되지 않습니다. 버튼 밖으로 아무 곳이나 클릭하면 이벤트가 다시 실행되지 않습니다.
내 질문은 : 포커스가있는 요소에 의존하지 않고 페이지 내의 키를 누를 때마다 발생하는 키보드 이벤트 처리기를 어떻게 만들 수 있습니까?
+1. 예. 특정 컨트롤에 바인딩되지 않고 전체적으로 주요 이벤트를 포착하는 것이 게임에 더 적합합니다. 그러나 WPF 및 WinForms의 이벤트 처리 기능을 사용하면 한 번에 하나의 키 또는 마우스 이벤트 만 포착 할 수 있습니다. Direct X와 같은 게임 인터페이스를 사용하면 여러 개의 키보드 및 마우스 키를 동시에 누를 수 있습니다. –