I cannot get backwards navigation using Shift+Tab to work in a TreeView that contains TextBoxs, forward navigation using Tab works fine and jump from TextBox to TextBox insi
If you look in the TreeView.OnKeyDown handler using ILSpy/Reflector, you can see the cause of your issues. The TreeView has special handling when Shift+Tab is pressed. The relevant code is:
Key key = e.Key;
if (key != Key.Tab) {
// ...
}
else {
if (TreeView.IsShiftKeyDown && base.IsKeyboardFocusWithin &&
this.MoveFocus(new TraversalRequest(FocusNavigationDirection.Previous))) {
e.Handled = true;
return;
}
}
Unfortunately, you'd need to use a custom TreeView class to work around this. Something like this works:
public class MyTreeView : TreeView {
protected override void OnKeyDown(KeyEventArgs e) {
if ((Keyboard.Modifiers & ModifierKeys.Shift) != 0 && e.Key == Key.Tab)
return;
base.OnKeyDown(e);
}
}