Exemple #1
0
        private static Visual FindLastContainedTarget(Visual scope, Stop currentStop, DependencyProperty navigationModeProperty, IStopComparerProvider stopComparerProvider)
        {
            IComparer <Stop> stopComparer = stopComparerProvider.CreateComparer(currentStop);

            Stop targetStop = null;

            foreach (Stop stop in GetContainedStops(scope, currentStop.Element, navigationModeProperty))
            {
                if (targetStop == null || stopComparer.Compare(targetStop, stop) <= 0)
                {
                    targetStop = stop;
                }
            }

            return(targetStop != null ? targetStop.Element : null);
        }
Exemple #2
0
 private static Visual FindLastTarget(Visual scope, Stop currentStop, DependencyProperty navigationModeProperty, IStopComparerProvider stopComparerProvider)
 {
     return(GetNavigation(scope, navigationModeProperty).FindLastTarget(scope, currentStop, navigationModeProperty, stopComparerProvider));
 }
Exemple #3
0
        private static Visual FindPreviousContainedTarget(Visual scope, Stop currentStop, DependencyProperty navigationModeProperty, IStopComparerProvider stopComparerProvider)
        {
            IComparer <Stop> stopComparer = stopComparerProvider.CreateComparer(currentStop);

            bool passedCurrentStop = false;

            Stop targetStop = null;

            foreach (Stop stop in GetContainedStops(scope, currentStop.Element, navigationModeProperty))
            {
                if (stop.Element == currentStop.Element)
                {
                    passedCurrentStop = true;
                    continue;
                }

                int compareResult = stopComparer.Compare(currentStop, stop);
                if ((compareResult > 0 || compareResult == 0 && !passedCurrentStop) && // select stops with priority lower than currentStop, or the same priority before currentStop
                    (targetStop == null || stopComparer.Compare(targetStop, stop) <= 0))
                {
                    targetStop = stop;
                }
            }

            return(targetStop != null ? targetStop.Element : null);
        }
Exemple #4
0
 public override Visual FindPreviousTarget(Visual scope, Stop currentStop, DependencyProperty navigationModeProperty, IStopComparerProvider stopComparerProvider)
 {
     return(KeyboardNavigationTarget.FindPreviousContainedTarget(scope, currentStop, navigationModeProperty, stopComparerProvider) ??
            (scope.VisualParent != null ? KeyboardNavigationTarget.FindPreviousTarget(scope.VisualParent, new Stop(currentStop.Element, KeyboardNavigation.GetTabIndex(scope)), navigationModeProperty, stopComparerProvider) : null)); // translate currentStop and forward request to parent
 }
Exemple #5
0
 public override Visual FindLastTarget(Visual scope, Stop currentStop, DependencyProperty navigationModeProperty, IStopComparerProvider stopComparerProvider)
 {
     return(KeyboardNavigationTarget.FindLastContainedTarget(scope, currentStop, navigationModeProperty, stopComparerProvider));
 }
Exemple #6
0
 public override Visual FindPreviousTarget(Visual scope, Stop currentStop, DependencyProperty navigationModeProperty, IStopComparerProvider stopComparerProvider)
 {
     return(KeyboardNavigationTarget.FindPreviousContainedTarget(scope, currentStop, navigationModeProperty, stopComparerProvider) ?? currentStop.Element); // stay at the edge
 }
Exemple #7
0
 public override Visual FindPreviousTarget(Visual scope, Stop currentStop, DependencyProperty navigationModeProperty, IStopComparerProvider stopComparerProvider)
 {
     // forward the request to the parent
     return(scope.VisualParent != null?KeyboardNavigationTarget.FindPreviousTarget(scope.VisualParent, currentStop, navigationModeProperty, stopComparerProvider) : null);
 }
Exemple #8
0
 public virtual Visual FindLastTarget(Visual scope, Stop currentStop, DependencyProperty navigationModeProperty, IStopComparerProvider stopComparerProvider)
 {
     return(scope.VisualParent != null?
            KeyboardNavigationTarget.FindLastTarget(scope.VisualParent, currentStop, navigationModeProperty, stopComparerProvider) :
                KeyboardNavigationTarget.FindLastContainedTarget(scope, currentStop, navigationModeProperty, stopComparerProvider));
 }