2016-06-22 15 views
0

Ich mache eine App mit der UWP und ich brauche eine Möglichkeit, die Pfeiltasten zu erkennen.Detect Pfeiltasten im Fenster UWP

Ich weiß, dass andere Methoden wie "Window.Current.CoreWindow.CharacterReceived" vorhanden sind, aber diese erkennt keine Pfeiltasten. Einige helfen pls?

Dank

+0

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

+1

Mögliches Duplikat von [PreviewKeyDo wn für Windows Store App ListBox] (http://stackoverflow.com/questions/16651616/previewkeydown-for-windows-store-app-listbox) – cybermonkey

Antwort

1

Die Lösung hängt von der Ansicht und die UI-Steuerelemente, die es enthält.

Grundsätzlich hat ein UI Control die KeyDown und KeyUp Ereignisse, zu denen Sie die Taste, die auf der Tastatur gedrückt/freigegeben wurde, abonnieren und steuern können.

Sie müssen sich auf die Ansicht Spur des fokussierten Objekt zu halten, wie je nachdem, welche es hat, kann der Event-Handler nicht aufgerufen werden:

standardmäßig das erste fokussierbare Element in der visuellen Struktur ist gegeben Fokus durch das System. Ein einzelnes Steuerelement erhält den Fokus, wenn der Benutzer direkt auf das Steuerelement im Layout klickt oder tippt oder den Tab verwendet, um in eine Tabulatorfolge innerhalb des Inhaltsbereichs zu wechseln. Sie können auch programmgesteuert den Fokus auf die Steuerung setzen, indem Sie Control.Focus aufrufen.

So zum Beispiel auf das KeyDown-Ereignis des Fensters registrieren:

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

Es sais "Der Name Key existiert nicht im aktuellen Kontext" so habe ich verwendet Virtualkey, aber nur den Schlüssel erkennen, wenn ich eine Textbox fokussiere. – Manueel