2017-11-28 2 views
-1

bisher veröffentlicht ich auf bin Tabbing PreviewKeyDown, so etwas wie dies mit:Halten Tabbing wenn Tab-Taste nicht

var focusedElement = Keyboard.FocusedElement as FrameworkElement; 
      var direction = GetDirection(); 
      focusedElement?.MoveFocus(new TraversalRequest(direction)); 
static FocusNavigationDirection GetDirection() 
     { 
      return (Keyboard.Modifiers.HasFlag(ModifierKeys.Shift)) 
       ? FocusNavigationDirection.Previous 
       : FocusNavigationDirection.Next; 
     } 

dieses große Werk, jedes Mal, wenn der Benutzer drückt Tab, wir Tab. Es fehlt jedoch eine Funktionalität: Ich möchte es tabbing, wenn der Benutzer den Tab-Taste nicht freigegeben hat. Beispiel Drücken und halten Sie die Tabulatortaste unten in Excel

Ich wollte wissen, ob es eine empfohlene/Standard/out of the box Möglichkeit gibt, dieses Verhalten zu erreichen?

Oder muss ich das selbst implementieren: was ich mit einem DispatcherTimer machen wollte und dann jedes Mal ein Häkchen setzen und dann den Timer auf KeyUp stoppen.

Antwort

2

Das Ereignis KeyDown wird wiederholt ausgelöst, solange die Taste gedrückt wird.

Auf dem anfänglichen Keydown, e.IsRepeat ist false. Solange die Taste so lange gedrückt gehalten wird, wird e.IsRepeattrue.

public void Whatever_KeyDown(object sender, KeyEventArgs e) 
{ 
} 
+0

Vielen Dank. Ich hatte das falsche Ereignis angeschlossen. – dman