2016-06-22 6 views
0

私はUWPでアプリケーションを作成しています。矢印キーを検出する方法が必要です。ウィンドウ内の矢印キーを検出するUWP

"Window.Current.CoreWindow.CharacterReceived"のような他のメソッドが存在することは知っていますが、これは矢印キーを検出しません。いくつかの助けpls?

おかげ

+0

http://stackoverflow.com/a/16996731/17034 –

+1

[PreviewKeyDo wn for Windows Store App ListBox](http://stackoverflow.com/questions/16651616/previewkeydown-for-windows-store-app-listbox) – cybermonkey

答えて

1

ソリューションは、ビューに依存し、UIは、それが含まれていることを制御します。

基本的に、UI Controlには、キーボードで押された/離されたキーをサブスクライブして制御できるイベントがあります(KeyDownKeyUp)。あなたは1がそれを持って応じて、どのようビューにフォーカスがあるオブジェクトを追跡する必要が

、イベントハンドラが呼び出されないことがあります。

デフォルトでは、ビジュアルツリー内の最初のフォーカス可能な要素でありますシステムによって のフォーカスが与えられます。個々のコントロールは、ユーザーがのレイアウト上でそのコントロールを直接クリックまたはタップするとフォーカスが得られます。または、コンテンツエリア内のタブシーケンスにステップインするためにタブ キーを使用します。また、Control.Focusを呼び出すことによって、フォーカスコントロールをプログラムで使用することもできます。

例えばので

ウィンドウのKeyDownイベントに登録します

XAML

<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

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"; 
     } 
    } 
} 
+0

sais "現在のコンテキストに名前キーが存在しません"バーチャルキーですが、テキストボックスにフォーカスしている場合はキーを検出するだけです。 – Manueel

関連する問題