示例#1
0
        public virtual void HandlePointerEvent(IPointerEvent evnt)
        {
            double        scale   = 1.0 / Zoom;
            IPointerEvent subEvnt = new PointerEventAdapter(evnt,
                                                            (int)(0.5 + (evnt.RawX - Canvas.RawWidth / 2.0) * scale + CenterX),
                                                            (int)(0.5 + (evnt.RawY - Canvas.RawHeight / 2.0) * scale + CenterY));

            IGesture gest = gesture;

            if (gest != null)
            {
                switch (evnt.Type)
                {
                case PointerEventType.GestureStart:
                    gest.GestureStart(subEvnt);
                    break;

                case PointerEventType.GestureMove:
                    gest.GestureMove(subEvnt);
                    break;

                case PointerEventType.GestureEnd:
                    gest.GestureComplete(subEvnt);
                    break;
                }
            }
        }
示例#2
0
        private void GestureStart(IPointerEvent evnt, bool considerPoke)
        {
            IGesture newGesture = GetGesture(evnt, considerPoke);

            if (newGesture != null)
            {
                if (current != null)
                {
                    current = null;
                    evnt.RepaintCanvas();
                }
                layoutCanvas.Gesture = newGesture;
                newGesture.GestureStart(evnt);
            }
        }