Exemplo n.º 1
0
        TView AddDropGesture <TView>(TView view)
            where TView : View
        {
            var dropRecognizer = new DropGestureRecognizer()
            {
                AllowDrop = true
            };

            view.GestureRecognizers.Add(dropRecognizer);

            return(view);
        }
Exemplo n.º 2
0
        public async Task DropCommandFires()
        {
            var dropRec = new DropGestureRecognizer()
            {
                AllowDrop = true
            };
            var     parameter       = new Object();
            object  commandExecuted = null;
            Command cmd             = new Command(() => commandExecuted = parameter);

            dropRec.DropCommand          = cmd;
            dropRec.DropCommandParameter = parameter;
            await dropRec.SendDrop(new DropEventArgs(new DataPackageView(new DataPackage())));

            Assert.AreEqual(commandExecuted, parameter);
        }
Exemplo n.º 3
0
        public void DragOverCommandFires()
        {
            var dropRec = new DropGestureRecognizer()
            {
                AllowDrop = true
            };
            var     parameter       = new Object();
            object  commandExecuted = null;
            Command cmd             = new Command(() => commandExecuted = parameter);

            dropRec.DragOverCommand          = cmd;
            dropRec.DragOverCommandParameter = parameter;
            dropRec.SendDragOver(new DragEventArgs(new DataPackage()));

            Assert.AreEqual(parameter, commandExecuted);
        }
Exemplo n.º 4
0
        public async Task TextPackageCorrectlySetsOnCompatibleTarget(Type fieldType, string result)
        {
            var dropRec = new DropGestureRecognizer()
            {
                AllowDrop = true
            };
            var element = (View)Activator.CreateInstance(fieldType);

            element.GestureRecognizers.Add(dropRec);
            var args = new DropEventArgs(new DataPackageView(new DataPackage()
            {
                Text = result
            }));
            await dropRec.SendDrop(args);

            Assert.AreEqual(element.GetStringValue(), result);
        }
Exemplo n.º 5
0
        public async Task HandledTest()
        {
            string testString = "test String";
            var    dropTec    = new DropGestureRecognizer()
            {
                AllowDrop = true
            };
            var element = new Label();

            element.Text = "Text Shouldn't change";
            var args = new DropEventArgs(new DataPackageView(new DataPackage()
            {
                Text = testString
            }));

            args.Handled = true;
            await dropTec.SendDrop(args);

            Assert.AreNotEqual(element.Text, testString);
        }
Exemplo n.º 6
0
        public void PropertySetters()
        {
            var dropRec = new DropGestureRecognizer()
            {
                AllowDrop = true
            };

            Command cmd       = new Command(() => { });
            var     parameter = new Object();

            dropRec.AllowDrop                = true;
            dropRec.DragOverCommand          = cmd;
            dropRec.DragOverCommandParameter = parameter;
            dropRec.DropCommand              = cmd;
            dropRec.DropCommandParameter     = parameter;

            Assert.AreEqual(true, dropRec.AllowDrop);
            Assert.AreEqual(cmd, dropRec.DragOverCommand);
            Assert.AreEqual(parameter, dropRec.DragOverCommandParameter);
            Assert.AreEqual(cmd, dropRec.DropCommand);
            Assert.AreEqual(parameter, dropRec.DropCommandParameter);
        }
Exemplo n.º 7
0
        protected override void Init()
        {
            Label testResult = new Label()
            {
                AutomationId = "Result",
                Text         = "Running"
            };

            var drag = new DragGestureRecognizer();

            drag.DropCompleted += (_, __) =>
            {
                if (testResult.Text == "Running")
                {
                    testResult.Text = "Success";
                }
            };

            BoxView boxView = new BoxView()
            {
                HeightRequest      = 200,
                WidthRequest       = 1000,
                BackgroundColor    = Color.Purple,
                GestureRecognizers =
                {
                    drag
                },
                AutomationId = "DragBox"
            };

            var dropGestureRecognizer = new DropGestureRecognizer();

            dropGestureRecognizer.DragOver += (_, args) =>
            {
                args.AcceptedOperation = DataPackageOperation.None;
            };

            dropGestureRecognizer.Drop += (_, args) =>
            {
                testResult.Text = "Fail";
            };

            BoxView boxView2 = new BoxView()
            {
                HeightRequest   = 200,
                WidthRequest    = 1000,
                BackgroundColor = Color.Pink,
                AutomationId    = "DropBox"
            };

            boxView2.GestureRecognizers.Add(dropGestureRecognizer);

            Content = new StackLayout()
            {
                Children =
                {
                    boxView,
                    boxView2,
                    new Label()
                    {
                        Text         = "Drag the top box to the bottom one. The drop operation for the bottom box should be disabled.",
                        AutomationId = "TestLoaded"
                    },
                    testResult
                }
            };
        }
Exemplo n.º 8
0
        public EnablingAndDisablingGestureTests()
        {
            Title = "Enabling and Disabling Gestures";
            StackLayout    stackLayout    = new StackLayout();
            CollectionView collectionView = new CollectionView();

            collectionView.ItemsUpdatingScrollMode = ItemsUpdatingScrollMode.KeepScrollOffset;
            ObservableCollection <string> observableCollection = new ObservableCollection <string>();

            collectionView.ItemsSource = observableCollection;

            Image imageSource = new Image()
            {
                Source          = "coffee.png",
                BackgroundColor = Color.Green
            };

            Image imageDestination = new Image()
            {
                BackgroundColor = Color.Purple,
                HeightRequest   = 50,
                WidthRequest    = 50
            };

            Button addRemoveDragGesture = new Button()
            {
                Text    = "Add/Remove Drag Gesture",
                Command = new Command(() =>
                {
                    var dragGestureRecognizer = imageSource.GestureRecognizers.OfType <DragGestureRecognizer>()
                                                .FirstOrDefault();

                    if (dragGestureRecognizer != null)
                    {
                        imageSource.GestureRecognizers.Remove(dragGestureRecognizer);
                    }
                    else
                    {
                        var dragGesture = new DragGestureRecognizer()
                        {
                            CanDrag = true
                        };

                        dragGesture.DragStarting += (_, args) =>
                        {
                            observableCollection.Insert(0, $"DragStarting");
                        };

                        dragGesture.DropCompleted += (_, args) =>
                        {
                            observableCollection.Insert(0, $"DropCompleted");
                        };

                        imageSource.GestureRecognizers.Add(dragGesture);
                    }
                })
            };

            Button toggleCanDrag = new Button()
            {
                Text    = "Toggle Can Drag",
                Command = new Command(() =>
                {
                    var dragGestureRecognizer = imageSource.GestureRecognizers.OfType <DragGestureRecognizer>()
                                                .FirstOrDefault();

                    if (dragGestureRecognizer != null)
                    {
                        dragGestureRecognizer.CanDrag = !dragGestureRecognizer.CanDrag;
                    }
                })
            };



            Button addRemoveDropGesture = new Button()
            {
                Text    = "Add/Remove Drop Gesture",
                Command = new Command(() =>
                {
                    var dropGestureRecognizer = imageDestination.GestureRecognizers.OfType <DropGestureRecognizer>()
                                                .FirstOrDefault();

                    if (dropGestureRecognizer != null)
                    {
                        imageDestination.GestureRecognizers.Remove(dropGestureRecognizer);
                    }
                    else
                    {
                        var dropGesture = new DropGestureRecognizer()
                        {
                            AllowDrop = true
                        };

                        dropGesture.Drop += (_, args) =>
                        {
                            observableCollection.Insert(0, $"Drop");
                        };

                        dropGesture.DragOver += (_, args) =>
                        {
                            observableCollection.Insert(0, $"DragOver");
                            args.AcceptedOperation = DataPackageOperation.Copy;
                        };

                        imageDestination.GestureRecognizers.Add(dropGesture);
                    }
                })
            };

            Button toggleCanDrop = new Button()
            {
                Text    = "Toggle Can Drop",
                Command = new Command(() =>
                {
                    var dropGestureRecognizer = imageDestination.GestureRecognizers.OfType <DropGestureRecognizer>()
                                                .FirstOrDefault();

                    if (dropGestureRecognizer != null)
                    {
                        dropGestureRecognizer.AllowDrop = !dropGestureRecognizer.AllowDrop;
                    }
                })
            };

            stackLayout.Children.Add(imageSource);
            stackLayout.Children.Add(addRemoveDragGesture);
            stackLayout.Children.Add(toggleCanDrag);

            stackLayout.Children.Add(imageDestination);
            stackLayout.Children.Add(addRemoveDropGesture);
            stackLayout.Children.Add(toggleCanDrop);

            stackLayout.Children.Add(collectionView);
            Content = stackLayout;
        }
 public static DropGestureRecognizer AllowDrop(this DropGestureRecognizer drop, bool allow)
 {
     drop.AllowDrop = allow;
     return(drop);
 }
 public static DropGestureRecognizer DropCommand(this DropGestureRecognizer drop, ICommand command, object parameter)
 {
     return(drop.DropCommand(command).DropCommandParameter(parameter));
 }
 public static DropGestureRecognizer DropCommandParameter(this DropGestureRecognizer drop, object parameter)
 {
     drop.DropCommandParameter = parameter;
     return(drop);
 }
 public static DropGestureRecognizer DropCommand(this DropGestureRecognizer drop, ICommand command)
 {
     drop.DropCommand = command;
     return(drop);
 }