public void DoubleTapped_Should_Follow_Pointer_Pressed_Released_Pressed() { Border border; var decorator = new Decorator { Child = border = new Border() }; var result = new List <string>(); decorator.AddHandler(Border.PointerPressedEvent, (s, e) => result.Add("dp")); decorator.AddHandler(Border.PointerReleasedEvent, (s, e) => result.Add("dr")); decorator.AddHandler(Gestures.TappedEvent, (s, e) => result.Add("dt")); decorator.AddHandler(Gestures.DoubleTappedEvent, (s, e) => result.Add("ddt")); border.AddHandler(Border.PointerPressedEvent, (s, e) => result.Add("bp")); border.AddHandler(Border.PointerReleasedEvent, (s, e) => result.Add("br")); border.AddHandler(Gestures.TappedEvent, (s, e) => result.Add("bt")); border.AddHandler(Gestures.DoubleTappedEvent, (s, e) => result.Add("bdt")); border.RaiseEvent(new PointerPressedEventArgs()); border.RaiseEvent(new PointerReleasedEventArgs()); border.RaiseEvent(new PointerPressedEventArgs { ClickCount = 2 }); Assert.Equal(new[] { "bp", "dp", "br", "dr", "bt", "dt", "bp", "dp", "bdt", "ddt" }, result); }
private void AddHandlers( Decorator decorator, Border border, IList <string> result, bool markHandled) { decorator.AddHandler(Border.PointerPressedEvent, (s, e) => { result.Add("dp"); if (markHandled) { e.Handled = true; } }); decorator.AddHandler(Border.PointerReleasedEvent, (s, e) => { result.Add("dr"); if (markHandled) { e.Handled = true; } }); border.AddHandler(Border.PointerPressedEvent, (s, e) => result.Add("bp")); border.AddHandler(Border.PointerReleasedEvent, (s, e) => result.Add("br")); decorator.AddHandler(Gestures.TappedEvent, (s, e) => result.Add("dt")); decorator.AddHandler(Gestures.DoubleTappedEvent, (s, e) => result.Add("ddt")); border.AddHandler(Gestures.TappedEvent, (s, e) => result.Add("bt")); border.AddHandler(Gestures.DoubleTappedEvent, (s, e) => result.Add("bdt")); }
public void DoubleTapped_Should_Not_Be_Rasied_if_Pressed_is_Handled() { Border border = new Border(); var decorator = new Decorator { Child = border }; var result = new List <string>(); decorator.AddHandler(Border.PointerPressedEvent, (s, e) => { result.Add("dp"); e.Handled = true; }); decorator.AddHandler(Border.PointerReleasedEvent, (s, e) => result.Add("dr")); decorator.AddHandler(Gestures.TappedEvent, (s, e) => result.Add("dt")); decorator.AddHandler(Gestures.DoubleTappedEvent, (s, e) => result.Add("ddt")); border.AddHandler(Border.PointerPressedEvent, (s, e) => result.Add("bp")); border.AddHandler(Border.PointerReleasedEvent, (s, e) => result.Add("br")); border.AddHandler(Gestures.TappedEvent, (s, e) => result.Add("bt")); border.AddHandler(Gestures.DoubleTappedEvent, (s, e) => result.Add("bdt")); _mouse.Click(border); _mouse.Down(border, clickCount: 2); Assert.Equal(new[] { "bp", "dp", "br", "dr", "bt", "dt", "bp", "dp" }, result); }
public void Tapped_Should_Follow_Pointer_Pressed_Released() { Border border = new Border(); var decorator = new Decorator { Child = border }; var result = new List <string>(); decorator.AddHandler(Border.PointerPressedEvent, (s, e) => result.Add("dp")); decorator.AddHandler(Border.PointerReleasedEvent, (s, e) => result.Add("dr")); decorator.AddHandler(Gestures.TappedEvent, (s, e) => result.Add("dt")); border.AddHandler(Border.PointerPressedEvent, (s, e) => result.Add("bp")); border.AddHandler(Border.PointerReleasedEvent, (s, e) => result.Add("br")); border.AddHandler(Gestures.TappedEvent, (s, e) => result.Add("bt")); _mouse.Click(border); Assert.Equal(new[] { "bp", "dp", "br", "dr", "bt", "dt" }, result); }
public void RightTapped_Should_Be_Raised_For_Right_Button() { Border border = new Border(); var decorator = new Decorator { Child = border }; var raised = false; decorator.AddHandler(Gestures.RightTappedEvent, (s, e) => raised = true); _mouse.Click(border, MouseButton.Right); Assert.True(raised); }
public void DoubleTapped_Should_Not_Be_Raised_For_Middle_Button() { Border border = new Border(); var decorator = new Decorator { Child = border }; var raised = false; decorator.AddHandler(Gestures.DoubleTappedEvent, (s, e) => raised = true); _mouse.Click(border, MouseButton.Middle); _mouse.Down(border, MouseButton.Middle, clickCount: 2); Assert.False(raised); }
public void Tapped_Should_Be_Raised_Even_When_PointerPressed_Handled() { Border border = new Border(); var decorator = new Decorator { Child = border }; var result = new List <string>(); border.AddHandler(Border.PointerPressedEvent, (s, e) => e.Handled = true); decorator.AddHandler(Gestures.TappedEvent, (s, e) => result.Add("dt")); border.AddHandler(Gestures.TappedEvent, (s, e) => result.Add("bt")); _mouse.Click(border); Assert.Equal(new[] { "bt", "dt" }, result); }
public void RoutedEventSourceTest() { string text = @" <Decorator x:Name='decorator1' xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' xmlns:test='clr-namespace:Granular.Presentation.Tests;assembly=Granular.Presentation.Tests' > <Decorator.Resources> <ControlTemplate x:Key='template2'> <Decorator x:Name='decorator2'> <Decorator x:Name='decorator2a'> <test:RoutedEventTestElement x:Name='element2' Width='20' Template='{DynamicResource template3}'/> </Decorator> </Decorator> </ControlTemplate> <ControlTemplate x:Key='template3'> <Decorator x:Name='decorator3'> <Decorator x:Name='decorator3a'> <test:RoutedEventTestElement x:Name='element3' Width='30'/> </Decorator> </Decorator> </ControlTemplate> </Decorator.Resources> <Decorator x:Name='decorator1a'> <test:RoutedEventTestElement x:Name='element1' Width='10' Template='{DynamicResource template2}'/> </Decorator> </Decorator>"; Decorator decorator1 = XamlLoader.Load(XamlParser.Parse(text)) as Decorator; Assert.IsNotNull(decorator1); RoutedEventTestElement element1 = NameScope.GetNameScope(decorator1).FindName("element1") as RoutedEventTestElement; Assert.IsNotNull(element1); Assert.AreEqual(10, element1.Width); Decorator decorator2 = NameScope.GetTemplateNameScope(element1).FindName("decorator2") as Decorator; Assert.IsNotNull(decorator2); RoutedEventTestElement element2 = NameScope.GetTemplateNameScope(element1).FindName("element2") as RoutedEventTestElement; Assert.IsNotNull(element2); Assert.AreEqual(20, element2.Width); Decorator decorator3 = NameScope.GetTemplateNameScope(element2).FindName("decorator3") as Decorator; Assert.IsNotNull(decorator3); RoutedEventTestElement element3 = NameScope.GetTemplateNameScope(element2).FindName("element3") as RoutedEventTestElement; Assert.IsNotNull(element3); Assert.AreEqual(30, element3.Width); object source1 = null; object source2 = null; object source3 = null; decorator1.AddHandler(RoutedEventTestElement.BubbleEvent, (RoutedEventHandler)((sender, e) => source1 = e.Source)); decorator2.AddHandler(RoutedEventTestElement.BubbleEvent, (RoutedEventHandler)((sender, e) => source2 = e.Source)); decorator3.AddHandler(RoutedEventTestElement.BubbleEvent, (RoutedEventHandler)((sender, e) => source3 = e.Source)); element3.RaiseEvent(new RoutedEventArgs(RoutedEventTestElement.BubbleEvent, element3)); Assert.AreEqual(element1, source1); Assert.AreEqual(element2, source2); Assert.AreEqual(element3, source3); }