OSDN Git Service

慣性スクロールに対応した
authorgdkhd812 <test@nnn.co.jp>
Thu, 22 Oct 2015 13:08:22 +0000 (18:38 +0530)
committergdkhd812 <test@nnn.co.jp>
Thu, 22 Oct 2015 13:08:22 +0000 (18:38 +0530)
Metro/FooEditEngine/FooTextBox.cs

index d4272f4..7001625 100644 (file)
@@ -100,7 +100,9 @@ namespace FooEditEngine.Metro
                 GestureSettings.Tap | 
                 GestureSettings.ManipulationTranslateX | 
                 GestureSettings.ManipulationTranslateY |
-                GestureSettings.ManipulationScale;
+                GestureSettings.ManipulationScale |
+                GestureSettings.ManipulationTranslateInertia |
+                GestureSettings.ManipulationScaleInertia;
             this.gestureRecongnizer.RightTapped += gestureRecongnizer_RightTapped;
             this.gestureRecongnizer.Tapped += gestureRecongnizer_Tapped;
             this.gestureRecongnizer.Dragging += gestureRecongnizer_Dragging;
@@ -774,10 +776,9 @@ namespace FooEditEngine.Metro
         Gripper hittedGripper;
         private void gestureRecongnizer_ManipulationInertiaStarting(GestureRecognizer sender, ManipulationInertiaStartingEventArgs e)
         {
-
-            sender.InertiaTranslationDeceleration = 10.0f * 96.0f / (1000.0f * 1000.0f);
-            sender.InertiaExpansionDeceleration = 100.0f * 96.0f / 1000.0f;
-            sender.InertiaRotationDeceleration = 720.0f / (1000.0f * 1000.0f);
+            //sender.InertiaTranslationDeceleration = 0.001f;
+            //sender.InertiaExpansionDeceleration = 100.0f * 96.0f / 1000.0f;
+            //sender.InertiaRotationDeceleration = 720.0f / (1000.0f * 1000.0f);
         }
 
         void gestureRecongnizer_ManipulationStarted(GestureRecognizer sender, ManipulationStartedEventArgs e)
@@ -880,7 +881,7 @@ namespace FooEditEngine.Metro
             if (e.PointerDeviceType == PointerDeviceType.Mouse)  //ホイールを使っているので、スクロール行数を計算する
                 scrollCount = (int)Math.Abs(translation.Y / sender.MouseWheelParameters.CharTranslation.Y);
             else
-                scrollCount = (int)Math.Abs(translation.Y);
+                scrollCount = (int)Math.Abs(Math.Ceiling(translation.Y));
             if (scrollCount > 0)
             {
                 if (translation.Y > 0)