public override Visual FindNextTarget(Visual scope, Stop currentStop, DependencyProperty navigationModeProperty, IStopComparerProvider stopComparerProvider) { return(KeyboardNavigationTarget.FindNextContainedTarget(scope, currentStop, navigationModeProperty, stopComparerProvider) ?? currentStop.Element); // stay at the edge }
public override Visual FindNextTarget(Visual scope, Stop currentStop, DependencyProperty navigationModeProperty, IStopComparerProvider stopComparerProvider) { return(KeyboardNavigationTarget.FindNextContainedTarget(scope, currentStop, navigationModeProperty, stopComparerProvider) ?? (scope.VisualParent != null ? KeyboardNavigationTarget.FindNextTarget(scope.VisualParent, new Stop(currentStop.Element, KeyboardNavigation.GetTabIndex(scope)), navigationModeProperty, stopComparerProvider) : null)); // translate currentStop and forward request to parent }
// forward the find request to the parent or find a contained target (scope or one of its children) public virtual Visual FindNextTarget(Visual scope, Stop currentStop, DependencyProperty navigationModeProperty, IStopComparerProvider stopComparerProvider) { return(scope.VisualParent != null? KeyboardNavigationTarget.FindNextTarget(scope.VisualParent, currentStop, navigationModeProperty, stopComparerProvider) : KeyboardNavigationTarget.FindNextContainedTarget(scope, currentStop, navigationModeProperty, stopComparerProvider)); }