Windows 플랫폼의 현대적인 앱 개발을 위한 UWP(Universal Windows Platform)에서는 다양한 입력 방식과 확인이 필요합니다. 본 강좌에서는 UWP 애플리케이션에서 기본 입력을 처리하는 방법에 대해 자세히 알아보겠습니다.
UWP의 입력 시스템 이해하기
UWP 애플리케이션에서는 마우스, 키보드, 터치, 게임 컨트롤러 등 다양한 입력 장치를 지원합니다. 이러한 입력 기술을 통해 사용자와의 상호작용을 설계할 수 있습니다. UWP 앱에서는 각 입력 소스에 대해 특정한 이벤트와 메서드를 통해 반응할 수 있습니다.
기본 입력 처리
UWP에서는 기본 입력 이벤트를 위해 다양한 이벤트를 제공합니다. 우리의 앱에서 입력을 처리하기 위해서는 해당 이벤트를 수신하고, 사용자의 입력을 분석한 후 적절하게 반응해야 합니다.
1. 마우스 입력
마우스 입력은 UWP 앱에서 가장 기본적인 입력 방식 중 하나입니다. 마우스 클릭은 PointerPressed
, PointerReleased
이벤트로 처리할 수 있습니다.
예제: 마우스 클릭 이벤트 처리
<Grid x:Name="MyGrid" PointerPressed="MyGrid_PointerPressed">
<TextBlock x:Name="OutputTextBlock" Text="클릭해주세요!" />
</Grid>
// C# 코드
private void MyGrid_PointerPressed(object sender, PointerRoutedEventArgs e)
{
OutputTextBlock.Text = "그리드를 클릭했습니다!";
}
2. 키보드 입력
키보드 입력은 KeyDown
과 KeyUp
이벤트를 통해 처리할 수 있습니다. 사용자가 입력한 키를 감지하여 적절한 동작을 수행할 수 있습니다.
예제: 키보드 입력 처리
<TextBox x:Name="InputTextBox" KeyDown="InputTextBox_KeyDown" />
// C# 코드
private void InputTextBox_KeyDown(object sender, KeyRoutedEventArgs e)
{
if (e.Key == VirtualKey.Enter)
{
OutputTextBlock.Text = "Enter 키가 눌렸습니다!";
}
}
3. 터치 입력
UWP는 터치 입력을 기본적으로 지원하며, 터치 이벤트는 마우스 이벤트와 유사하게 처리할 수 있습니다. Touch.FrameReported
이벤트를 사용하여 터치 입력을 관리합니다.
예제: 터치 입력 처리
<Grid x:Name="MyTouchGrid" Touch.FrameReported="MyTouchGrid_TouchFrameReported">
<TextBlock x:Name="TouchOutputTextBlock" Text="터치해주세요!" />
</Grid>
// C# 코드
private void MyTouchGrid_TouchFrameReported(object sender, TouchFrameEventArgs e)
{
TouchPoints = e.GetTouchPoints(MyTouchGrid);
TouchOutputTextBlock.Text = "터치되었습니다!";
}
4. 게임 컨트롤러 입력
UWP는 Xbox 컨트롤러와 같은 게임 컨트롤러의 입력을 지원합니다. Gamepad
클래스를 사용하여 입력을 처리할 수 있습니다.
예제: 게임 패드 입력 처리
// C# 코드
var gamepad = Gamepad.Gamepads.FirstOrDefault();
if (gamepad != null)
{
var state = gamepad.GetCurrentReading();
if (state.Buttons.HasFlag(GamepadButtons.A))
{
OutputTextBlock.Text = "A 버튼이 눌렸습니다!";
}
}
결과 확인하기
위에서 설명한 기본 입력 처리 방법을 UWP 애플리케이션에 적용해 보세요. 여러 가지 입력 방식 간의 반응을 확인하고, 사용자 인터페이스가 사용자 중심으로 설계되고 있는지를 점검해 봅니다.