return;
}
+
if (e.Delta.Scale < 1)
{
double newSize = this.Render.FontSize - 1;
SetValue(MagnificationPowerPropertyKey, this.Render.FontSize / this.FontSize);
return;
}
-
+
Point translation = e.Delta.Translation;
- System.Diagnostics.Debug.WriteLine("tran y:{0}", translation.Y);
- int scrollCount = 0;
- if (e.PointerDeviceType == PointerDeviceType.Mouse) //ホイールを使っているので、スクロール行数を計算する
- scrollCount = (int)Math.Abs(translation.Y / sender.MouseWheelParameters.CharTranslation.Y);
- else
- scrollCount = (int)Math.Abs(Math.Ceiling(translation.Y));
- if (scrollCount > 0)
+ //Xの絶対値が大きければ横方向のスクロールで、そうでなければ縦方向らしい
+ if (Math.Abs(e.Cumulative.Translation.X) < Math.Abs(e.Cumulative.Translation.Y))
{
+ int scrollCount = 0;
+ if (e.PointerDeviceType == PointerDeviceType.Mouse) //ホイールを使っているので、スクロール行数を計算する
+ scrollCount = (int)Math.Abs(translation.Y / sender.MouseWheelParameters.CharTranslation.Y);
+ else
+ scrollCount = (int)Math.Abs(Math.Ceiling(translation.Y));
+
if (translation.Y > 0)
this._Controller.Scroll(ScrollDirection.Up, scrollCount, false, false);
else
return;
}
- int deltax = (int)Math.Abs(translation.X);
+ int deltax = (int)Math.Abs(Math.Ceiling(translation.X));
if (deltax != 0)
{
if (translation.X < 0)