public void Tab_Should_Custom_Navigate_Within_Children() { Button current; Button next; var target = new CustomNavigatingStackPanel { Children = { (current = new Button { Content = "Button 1" }), new Button { Content = "Button 2" }, (next = new Button { Content = "Button 3" }), }, NextControl = next, }; var result = KeyboardNavigationHandler.GetNext(current, NavigationDirection.Next); Assert.Same(next, result); }
public void Tab_Should_Navigate_Outside_When_Null_Returned_As_Next() { Button current; Button next; var target = new CustomNavigatingStackPanel { Children = { new Button { Content = "Button 1" }, (current = new Button{ Content = "Button 2" }), new Button { Content = "Button 3" }, }, }; var root = new StackPanel { Children = { target, (next = new Button { Content = "Outside" }), } }; var result = KeyboardNavigationHandler.GetNext(current, NavigationDirection.Next); Assert.Same(next, result); }
public void ShiftTab_Should_Custom_Navigate_From_Outside() { Button current; Button next; var target = new CustomNavigatingStackPanel { Children = { new Button { Content = "Button 1" }, new Button { Content = "Button 2" }, (next = new Button{ Content = "Button 3" }), }, NextControl = next, }; var root = new StackPanel { [KeyboardNavigation.TabNavigationProperty] = KeyboardNavigationMode.Cycle, Children = { (current = new Button { Content = "Outside" }), target, } }; var result = KeyboardNavigationHandler.GetNext(current, NavigationDirection.Previous); Assert.Same(next, result); }