Пример #1
0
        public override void OnGesture(GestureInfo info)
        {
            base.OnGesture(info);

            if (info.Gesture == Gesture.Tap && closeByTap)
            {
                DialogResult   = DialogResult.Ok;
                info.IsHandled = true;
                Close();
            }
        }
Пример #2
0
        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);
        }