private void ScaleEllipse(Ellipse elli, Windows.UI.Input.ManipulationDelta delta) { var scale = delta.Scale; elli.Width *= scale; elli.Height *= scale; }
private void TranslateEllipse(Ellipse elli, Windows.UI.Input.ManipulationDelta delta) { var translation = delta.Translation; var left = Canvas.GetLeft(elli) + translation.X; var top = Canvas.GetTop(elli) + translation.Y; var maxLeft = (elli.Parent as FrameworkElement).ActualWidth - elli.Width; var maxTop = (elli.Parent as FrameworkElement).ActualHeight - elli.Height; left = (left < maxLeft) ? left : maxLeft; left = (0 < left) ? left : 0; top = (top < maxTop) ? top : maxTop; top = (0 < top) ? top : 0; Canvas.SetLeft(elli, left); Canvas.SetTop(elli, top); }
private void RotateEllipse(Ellipse elli, Windows.UI.Input.ManipulationDelta delta) { //check if rotate transform var oldTransform = (elli.RenderTransform as RotateTransform); if (oldTransform == null) { oldTransform = new RotateTransform(); } var angle = oldTransform.Angle; angle += delta.Rotation; var rotateTransform = new RotateTransform(); rotateTransform.Angle = angle; rotateTransform.CenterX = 150; rotateTransform.CenterY = 150; elli.RenderTransform = rotateTransform; }
private void UpdateSwipe(Windows.UI.Input.ManipulationDelta cumulative) { double swipeAmount = 0.0; switch (AssociatedObject.ManipulationMode) { case Windows.UI.Xaml.Input.ManipulationModes.None: break; case Windows.UI.Xaml.Input.ManipulationModes.TranslateX: swipeAmount = cumulative.Translation.X; break; case Windows.UI.Xaml.Input.ManipulationModes.TranslateY: swipeAmount = cumulative.Translation.Y; break; case Windows.UI.Xaml.Input.ManipulationModes.TranslateRailsX: swipeAmount = cumulative.Translation.X; break; case Windows.UI.Xaml.Input.ManipulationModes.TranslateRailsY: swipeAmount = cumulative.Translation.Y; break; case Windows.UI.Xaml.Input.ManipulationModes.Rotate: swipeAmount = cumulative.Rotation; break; case Windows.UI.Xaml.Input.ManipulationModes.Scale: swipeAmount = cumulative.Scale; break; case Windows.UI.Xaml.Input.ManipulationModes.TranslateInertia: break; case Windows.UI.Xaml.Input.ManipulationModes.RotateInertia: break; case Windows.UI.Xaml.Input.ManipulationModes.ScaleInertia: break; case Windows.UI.Xaml.Input.ManipulationModes.All: break; case Windows.UI.Xaml.Input.ManipulationModes.System: break; default: break; } // スワイプの遊び量よりもスワイプ移動量が低い場合はスワイプとして扱わない var play = SwipeAmountOfPlay; if (play >= Math.Abs(swipeAmount)) { } else { // 遊び量を超えるスワイプ移動量を検出した // 遊び量を引いて見かけに合わせたスワイプ移動量を求める SwipeAmount = (swipeAmount - play) * SwipeAmountScale; System.Diagnostics.Debug.WriteLine("Swipe: " + SwipeAmount); } }
private void InitializeSwipe(Windows.UI.Input.ManipulationDelta cumulative) { SwipeAmount = 0; }