TView AddDropGesture <TView>(TView view) where TView : View { var dropRecognizer = new DropGestureRecognizer() { AllowDrop = true }; view.GestureRecognizers.Add(dropRecognizer); return(view); }
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); }
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); }
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); }
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); }
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); }
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 } }; }
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); }