public override void OnGesture(GestureInfo info) { base.OnGesture(info); if (info.Gesture == Gesture.Tap && closeByTap) { DialogResult = DialogResult.Ok; info.IsHandled = true; Close(); } }
private void ProcessGesture(Gesture gest) { if (dragger.IsDragging) { return;//we are in drag mode => ignore gestures } //get last touched UI var ui = Gestures.LastTouchedUI; if (ui == null) { DefaultGestureProcessing(gest); return; } //find touched BaseView var view = ui.GetComponentsInParent <BaseView>().FirstOrDefault(v => v.VisibleState != VisibleState.Closed); //try process gesture in touched view and it's owners var info = new GestureInfo(gest, view); while (view != null) { //call method of view view.OnGesture(info); if (info.IsHandled || view.SuppressAnyGesturesForOwners) { return;//gesture is handled } //go to owner view = view.Owner; } //gesture is not handled => try process Back DefaultGestureProcessing(gest); }