// Window moves through pan gestures. private void OnWinPanGestureDetected(object source, PanGestureDetector.DetectedEventArgs e) { if (currentGesture <= CurrentGesture.PanGesture /*&& panGesture.NumberOfTouches == 1*/) { PanGesture panGesture = e.PanGesture; if (panGesture.State == Gesture.StateType.Started) { currentGesture = CurrentGesture.PanGesture; if (BorderWindow.IsMaximized() == true) { BorderWindow.Maximize(false); } else { BorderWindow.RequestMoveToServer(); } } else if (panGesture.State == Gesture.StateType.Finished || panGesture.State == Gesture.StateType.Cancelled) { currentGesture = CurrentGesture.None; ClearWindowGesture(); } } }
// Behavior when the window is tapped. private void OnWinTapGestureDetected(object source, TapGestureDetector.DetectedEventArgs e) { if (currentGesture <= CurrentGesture.TapGesture) { currentGesture = CurrentGesture.TapGesture; if (e.TapGesture.NumberOfTaps == 2) { if (BorderWindow.IsMaximized() == false) { BorderWindow.Maximize(true); } else { BorderWindow.Maximize(false); } } else { ClearWindowGesture(); } } }
// Intercept touch on window. private bool OnWinInterceptedTouch(object sender, Window.TouchEventArgs e) { if (e.Touch.GetState(0) == PointStateType.Stationary && e.Touch.GetPointCount() == 2) { if (isWinGestures == false && timer == null) { timer = new Timer(300); timer.Tick += OnTick; timer.Start(); } } else { currentGesture = CurrentGesture.None; if (timer != null) { timer.Stop(); timer.Dispose(); timer = null; } } return(false); }