private void ml_Started(object sender, ManipulationStartedEventArgs e) { var clickPoint = e.ManipulationContainer.TransformToVisual(this).Transform(e.ManipulationOrigin); var topToBottomInversed = new Point(clickPoint.X, ActualHeight - clickPoint.Y); _link = PageCanvas.CurrentLinks.FirstOrDefault(l => l.Rect.Contains(clickPoint)); if (_link != null) { PageCanvas.Manipulator.Pause(); return; } bool isAppBarTriangleAreTapped = MathHelper.IsPointInTriangle( new Point(0, AppBar.HeightInMinimizedState), new Point(ActualWidth/2, 120 + AppBar.HeightInMinimizedState), new Point(ActualWidth, AppBar.HeightInMinimizedState), topToBottomInversed); if (isAppBarTriangleAreTapped) { e.Handled = true; e.Complete(); PageCanvas.Manipulator.CancelNextEvent(); AppBar.Open(); } else { if (AppBar.IsOpen) { e.Handled = true; e.Complete(); PageCanvas.Manipulator.CancelNextEvent(); AppBar.Close(); } } }
private void MlOnCompleted(object sender, ManipulationCompletedEventArgs manipulationCompletedEventArgs) { if (_link != null) { PageCanvas.Manipulator.Resume(); _link = null; } }
private void PageOnTap(object sender, PointManipulationEventArgs e) { if (_link != null) { GotoLink(_link.LinkID); PageCanvas.Manipulator.Resume(); _link = null; } }
private void MlOnDelta(object sender, ManipulationDeltaEventArgs manipulationDeltaEventArgs) { _link = null; PageCanvas.Manipulator.Resume(); }