void AddSomeGesturesUsingCode() { //2 options: //1. use the standard xamarin api. e.g. view.GestureRecgonizers.Add(yourgesturerecognizer) // and then call view.ProcessGestures(); // this has the benefit that when Xamarin add an api hook we can remove the view.ProcessGestures call and // it will all be good. //2. use the extension method view.AddGestureRecognizer(yourgesturerecognizer) // this is easier to use; and does everything under the hood; but it's a bit more obtrusive. // in all cases, until Xamarin do more to open up the api, you must use the view extension method // removeGestureRecognizer // comment on https://bugzilla.xamarin.com/show_bug.cgi?id=30467 to get Xamarin to expand // IGestureRecognizer with some add/remove hooks var panRecognizer = new PanGestureRecognizer (); panRecognizer.OnAction += OnAction; var Box3 = new BoxView () { Color = Color.Olive, }; MainLayout.Children.Add (Box3); Box3.Layout (new Rectangle (100, 400, 100, 100)); // Box3.AddGestureRecognizer (panRecognizer); var panRecognizerWith2Tocuhes = new TwinTechs.Gestures.PanGestureRecognizer (); panRecognizerWith2Tocuhes.OnAction += OnAction; panRecognizerWith2Tocuhes.MinimumNumberOfTouches = 2; Label2.GestureRecognizers.Add (panRecognizerWith2Tocuhes); Label2.ProcessGestureRecognizers (); }
public PanGestureExample3 () { InitializeComponent (); MainLayout.OnLayoutChildren += MainLayout_OnLayoutChildren; OuterView = new StackLayout { Padding = new Thickness (50), BackgroundColor = Color.Yellow }; this.MainLayout.Children.Add (OuterView); OuterView.Layout (_outerLayoutBounds); Box = new BoxView { Color = Color.Red, WidthRequest = 150, HeightRequest = 150, }; OuterView.Children.Add (Box); var panRecognizer = new PanGestureRecognizer (); panRecognizer.IsConsumingTouchesInParallel = true; panRecognizer.OnAction += Gesture_OnAction; Box.AddGestureRecognizer (panRecognizer); Box2 = new BoxView (); Box2.Color = Color.Blue; this.MainLayout.Children.Add (Box2); Box2.Layout (_box2Bounds); panRecognizer = new PanGestureRecognizer (); panRecognizer.OnAction += Gesture_OnAction; panRecognizer.IsConsumingTouchesInParallel = true; Box2.AddGestureRecognizer (panRecognizer); DoBoxAnimation (); }
public PanGestureExample2 () { InitializeComponent (); MainLayout.OnLayoutChildren += MainLayout_OnLayoutChildren; Box = new BoxView (); Box.Color = Color.Red; this.MainLayout.Children.Add (Box); Box.Layout (_boxBounds); var panRecognizer = new PanGestureRecognizer (); panRecognizer.IsConsumingTouchesInParallel = true; panRecognizer.OnAction += Gesture_OnAction; Box.AddGestureRecognizer (panRecognizer); Box2 = new BoxView (); Box2.Color = Color.Blue; this.MainLayout.Children.Add (Box2); Box2.Layout (_box2Bounds); panRecognizer = new PanGestureRecognizer (); panRecognizer.OnAction += Gesture_OnAction; panRecognizer.IsConsumingTouchesInParallel = true; Box2.AddGestureRecognizer (panRecognizer); DoBoxAnimation (); }