Почему бы вам просто не использовать этот код в своем обработчике команд?
private void MyCommandHandler(){
// Do command's work here
TraversalRequest request = new TraversalRequest(FocusNavigationDirection.Next);
request.Wrapped = true;
control.MoveFocus(request);
}
Это в основном то, что делает 'Tab', поэтому, если вы сделаете то же самое, вы можете идти.(Конечно, измените направление, если у вас есть команда с Shift-Tab.
Я фактически обернул это в метод расширения, например ...
public static class NavigationHelpers{
public static void MoveFocus(this FrameworkElement control, FocusNavigationDirection direction = FocusNavigationDirection.Next, bool wrap = true) {
TraversalRequest request = new TraversalRequest(direction);
request.Wrapped = wrap;
control.MoveFocus(request);
}
}
... в смыслекод становится еще проще, как этот ...
private void MyCommandHandler(){
// Do command's work here
Control.MoveFocus();
}
... и если вы не знаете, что такое фокусируемый элемент управления, вы можете просто сделать это ...
(Keyboard.FocusedElement as FrameworkElement).MoveFocus();
Надеюсь, это поможет! Если это так, то мы будем очень признательны, если вы проголосуете за меня или отметите это как принятое!