Esempio n. 1
0
        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"));
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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);
        }