2016-09-13 3 views
0

Wie kann ich Alt Gr Taste drücken?KeyDown-Ereignis und AltGr

Ich habe KeyDown Ereignis an ein WPF-Fenster angefügt.

Wenn ich drücken Alt Gr dann die Key Parameter im KeyEventArg Objekt gleich LeftCtrl.

Auch wenn ich überprüfen Keyboard.IsKeyDown und Keyboard.Modifiers es immer zurück Control Taste gedrückt.

Wie kann ich AltGr Schlüssel drücken? Was ist die beste Methode, es zu tun?

+0

Was ist Ihre Frage? – hcham1

+0

Wie kann ich erkennen, dass 'AltGr' gedrückt wird? – Marek

+0

** Alt Gr ** ist einfach ** Alt + Strg ** und kann nicht über 'KeyDown' als einzelne Taste erkannt werden. –

Antwort

0

Ich habe eine Lösung für mein Problem gefunden. AltGr wurde von Menu Komponente behandelt.

Ich ändere meine KeyDown Ereignis zu KeyUp so jetzt ich fange AltGr richtig.

0

Haben Sie das schon versucht:

void MainWindow_KeyDown(object sender, KeyEventArgs e) { 
    if (e.Key == Key.RightAlt) 
    { 
     // Do something 
    } } 

Wenn nicht, definieren Sie, was Sie bereits versucht haben.

+1

habe ich versucht, die typischen Lösungen wie: 'e.Key == Key.RightAlt' ' e.KeyboardDevice.Modifiers.HasFlag (ModifierKeys.Alt) 'etc ' Keyboard.IsKeyDown' – Marek

0

Sieht aus wie dieser Beitrag Ihre Frage beantwortet:

How to distinguish between multiple key combination in wpf/c#

Insbesondere dieser Abschnitt des Codes ist, wie Sie die AltGr-Taste drücken sehen:

private void WindowKeyDown(object sender, KeyEventArgs e) 
{ 
    var alt = e.KeyboardDevice.Modifiers.HasFlag(ModifierKeys.Alt); 
    var ctrl = e.KeyboardDevice.Modifiers.HasFlag(ModifierKeys.Control); 
    var altGr = alt & ctrl; 
    var shift = e.KeyboardDevice.Modifiers.HasFlag(ModifierKeys.Shift); 
} 

Dies liegt daran, Alt GR als registriert "ALT + LINKE STRG" von Windows

+0

Ich weiß, dass Alt GR Kombination von oben. Ergebnis: alt: Falsch, Strg: True, AltGr: False. Ich habe keine Ahnung, warum 'alt' in meinem Fall nicht ausgelöst wird. – Marek

+0

Können Sie überprüfen, was der e.SystemKey zurückgibt? https://msdn.microsoft.com/en-us/library/system.windows.input.keyeventargs.systemkey(v=vs.110).aspx – hcham1

+0

Zurückgeben nichts. Ich habe eine Lösung für mein Problem gefunden. Danke für die Antwort. – Marek

Verwandte Themen