From 1ab76446ba3c2a9b4e0c86b2a588086f87e4c182 Mon Sep 17 00:00:00 2001 From: ClemensF Date: Thu, 7 Jan 2021 19:27:25 +0100 Subject: [PATCH] Fixed MouseWheel handling --- MapControl/UWP/Map.UWP.cs | 5 +++-- MapControl/WPF/Map.WPF.cs | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/MapControl/UWP/Map.UWP.cs b/MapControl/UWP/Map.UWP.cs index 3d21c01c..fcfa157e 100644 --- a/MapControl/UWP/Map.UWP.cs +++ b/MapControl/UWP/Map.UWP.cs @@ -2,6 +2,7 @@ // © 2020 Clemens Fischer // Licensed under the Microsoft Public License (Ms-PL) +using System; using Windows.UI.Xaml; using Windows.UI.Xaml.Input; @@ -44,9 +45,9 @@ namespace MapControl private void OnPointerWheelChanged(object sender, PointerRoutedEventArgs e) { var point = e.GetCurrentPoint(this); - var zoomDelta = MouseWheelZoomDelta * point.Properties.MouseWheelDelta / 120d; + var zoomLevel = TargetZoomLevel + MouseWheelZoomDelta * Math.Sign(point.Properties.MouseWheelDelta); - ZoomMap(point.Position, TargetZoomLevel + zoomDelta); + ZoomMap(point.Position, MouseWheelZoomDelta * Math.Round(zoomLevel / MouseWheelZoomDelta)); } } } diff --git a/MapControl/WPF/Map.WPF.cs b/MapControl/WPF/Map.WPF.cs index f8a55ab1..93cbc103 100644 --- a/MapControl/WPF/Map.WPF.cs +++ b/MapControl/WPF/Map.WPF.cs @@ -2,6 +2,7 @@ // © 2020 Clemens Fischer // Licensed under the Microsoft Public License (Ms-PL) +using System; using System.Windows; using System.Windows.Input; @@ -98,9 +99,9 @@ namespace MapControl private void OnMouseWheel(object sender, MouseWheelEventArgs e) { - var zoomDelta = MouseWheelZoomDelta * e.Delta / 120d; + var zoomLevel = TargetZoomLevel + MouseWheelZoomDelta * Math.Sign(e.Delta); - ZoomMap(e.GetPosition(this), TargetZoomLevel + zoomDelta); + ZoomMap(e.GetPosition(this), MouseWheelZoomDelta * Math.Round(zoomLevel / MouseWheelZoomDelta)); } } }