UWP로 앱을 만들고 있는데 화살표 키를 감지 할 방법이 필요합니다.창 안의 화살표 키 감지 UWP
"Window.Current.CoreWindow.CharacterReceived"를 사용하는 것과 같은 다른 방법이 있지만이 방법은 화살표 키를 감지하지 못합니다. 일부 도움이 pls?
감사합니다.
UWP로 앱을 만들고 있는데 화살표 키를 감지 할 방법이 필요합니다.창 안의 화살표 키 감지 UWP
"Window.Current.CoreWindow.CharacterReceived"를 사용하는 것과 같은 다른 방법이 있지만이 방법은 화살표 키를 감지하지 못합니다. 일부 도움이 pls?
감사합니다.
해결 방법은보기와 뷰에 포함 된 UI 컨트롤에 따라 다릅니다.
기본적으로 UI Control은 키보드에서 눌렀다 놓은 키를 구독하고 제어 할 수있는 이벤트가 KeyDown 및 KeyUp입니다.
당신은 하나를 가지고에 따라 같은 뷰에 포커스가있는 객체를 추적해야하는 이벤트 핸들러가 호출되지 않을 수 있습니다 기본적으로
는 시각적 트리의 첫 번째 포커스 요소입니다 시스템에 의해 포커스가 주어진다. 사용자가 사용자가 레이아웃에서 해당 컨트롤을 직접 클릭하거나 탭하면 개별 컨트롤이 포커스를 얻거나 키 탭을 사용하여 컨텐트 영역 내의 탭 시퀀스로 들어갑니다. Control.Focus를 호출하여 포커스를 프로그래밍 방식으로 프로그래밍 할 수도 있습니다.
그래서 예를 들어, 윈도우의 KeyDown 이벤트에 등록 :
<Window x:Class="WpfApplication25.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525"
KeyDown="Window_KeyDown">
</Window>
CS를
XAML
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Window_KeyDown(object sender, KeyEventArgs e)
{
// ... Test for F5 key.
if (e.Key == Key.F5)
{
this.Title = "You pressed F5";
}
}
}
sais "이름 키가 현재 컨텍스트에서 존재하지 않습니다."그래서 사용했습니다. 가상 키,하지만 텍스트 상자에 집중한다면 키를 감지 할 수 있습니다. – Manueel
http://stackoverflow.com/a/16996731/17034 –
가능한 [PreviewKeyDo Windows 저장소 앱 목록 상자에 대한 wn] (http://stackoverflow.com/questions/16651616/previewkeydown-for-windows-store-app-listbox) – cybermonkey