2013-05-28 4 views
6

Ich bin Handhabung bewusst, wie Schlüsselereignisse zu handhaben, dhVirtualKey in Windows 8 Store Apps mit C#

private void Page_KeyUp(object sender, KeyRoutedEventArgs e) 
{ 
    switch (e.Key) 
    { 
    case Windows.System.VirtualKey.Enter: 
     // handler for enter key 
     break; 

    case Windows.System.VirtualKey.A: 
     // handler for A key 
     break; 

    default: 
     break; 
    } 
} 

Aber was, wenn ich zwischen Klein ‚a‘ und Großbuchstaben "erkennen, muß EIN'? Was auch, wenn ich Schlüssel wie das Prozentzeichen '%' behandeln möchte?

Antwort

1

Sie können diese Information nicht leicht von KeyUp bekommen, weil KeyUp nur weiß, welche Tasten gedrückt werden, nicht welche Buchstaben eingegeben werden. Sie könnten prüfen, ob die Umschalttaste gedrückt ist, und Sie könnten auch versuchen, die Feststelltaste selbst zu erfassen. Besser verwenden Sie TextChanged Ereignis.

+0

Dank Xyroid. Ich versuche, eine Bedingung zu behandeln, bei der Tastenanschläge nacheinander ausgewertet werden und der Code basierend auf der ersten Taste, die gedrückt wird, aufgerufen wird. Leider funktioniert TextChanged nicht, da die Tastatureingaben nicht alle gleichzeitig erfolgen. – joelc

+0

Sie werden eine große Überraschung erleben, wenn jemand versucht, eine japanische Tastatur zu benutzen. Die Umwandlung von Schlüsseln in Zeichen ist sehr schwierig. Lassen Sie den Input-Manager damit umgehen. –

8

Haben Sie eine Antwort an anderer Stelle. Für diejenigen, die interessiert sind ...

public Foo() 
{ 
    this.InitializeComponent(); 
    Window.Current.CoreWindow.CharacterReceived += KeyPress; 
} 

void KeyPress(CoreWindow sender, CharacterReceivedEventArgs args) 
{ 
    args.Handled = true; 
    Debug.WriteLine("KeyPress " + Convert.ToChar(args.KeyCode)); 
    return; 
} 

Noch besser, bewegen Sie den Window.Current.CoreWindow.CharacterReceived += KeyPress; in ein GotFocus-Ereignishandler und Window.Current.CoreWindow.CharacterReceived -= KeyPress; in einem Handler Lostfocus-Ereignis hinzuzufügen.

+2

Mann, Ihre Antwort war die einzige und ich meine nur Hilfe Dokumentation, die ich im Netz in Bezug auf das Ereignis CharacterReceived finden konnte. So führte es mich bei der Beantwortung meiner eigenen Frage hier: http://stackoverflow.com/questions/24612653/windows-phone-8-1-shift-key-state-abnormal-behavour Vielen Dank – stackunderflow

+1

So froh, dass es Ihnen geholfen hat aus!! – joelc

+1

Danke! Es half mir auch, meine eigene Frage zu beantworten :) http://stackoverflow.com/questions/25475739/activate-a-textbox-automatical-when-user-starts-typing –

Verwandte Themen