From 498080eeb2fe3a26fcdb7ab27c75b6b00609bba3 Mon Sep 17 00:00:00 2001 From: Shawn Kendrot Date: Wed, 18 Mar 2020 14:09:36 -0600 Subject: [PATCH 1/3] Fixes #3170 - A horizontal scroll happens if the mouse has a horizontal wheel OR if the horizontal scrollbar is not disabled AND the vertical scrollbar IS disabled --- .../DataGrid/DataGrid.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/DataGrid.cs b/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/DataGrid.cs index 46ae26a4def..85b6c1eb101 100644 --- a/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/DataGrid.cs +++ b/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/DataGrid.cs @@ -3712,7 +3712,10 @@ protected override void OnPointerWheelChanged(PointerRoutedEventArgs e) if (!e.Handled) { PointerPoint pointerPoint = e.GetCurrentPoint(this); - bool isForHorizontalScroll = pointerPoint.Properties.IsHorizontalMouseWheel; + + // A horizontal scroll happens if the mouse has a horizontal wheel OR if the horizontal scrollbar is not disabled AND the vertical scrollbar IS disabled + bool isForHorizontalScroll = pointerPoint.Properties.IsHorizontalMouseWheel | + (this.HorizontalScrollBarVisibility != ScrollBarVisibility.Disabled && this.VerticalScrollBarVisibility == ScrollBarVisibility.Disabled); if ((isForHorizontalScroll && this.HorizontalScrollBarVisibility == ScrollBarVisibility.Disabled) || (!isForHorizontalScroll && this.VerticalScrollBarVisibility == ScrollBarVisibility.Disabled)) From 3850327c7873f9eab67a50a26b84aadd0a4df736 Mon Sep 17 00:00:00 2001 From: Shawn Kendrot Date: Wed, 18 Mar 2020 14:24:16 -0600 Subject: [PATCH 2/3] Only scroll opposite if the scroll happened from a horizontal scroll --- Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/DataGrid.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/DataGrid.cs b/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/DataGrid.cs index 85b6c1eb101..153bb70ad1d 100644 --- a/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/DataGrid.cs +++ b/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/DataGrid.cs @@ -3724,7 +3724,7 @@ protected override void OnPointerWheelChanged(PointerRoutedEventArgs e) } double offsetDelta = -pointerPoint.Properties.MouseWheelDelta / DATAGRID_mouseWheelDeltaDivider; - if (isForHorizontalScroll) + if (isForHorizontalScroll && pointerPoint.Properties.IsHorizontalMouseWheel) { offsetDelta *= -1.0; } From 6607c4e1a6ec4cbf6b4eb54599e234a0b488001b Mon Sep 17 00:00:00 2001 From: Shawn Kendrot Date: Thu, 19 Mar 2020 17:57:18 -0600 Subject: [PATCH 3/3] Correct or statement --- Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/DataGrid.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/DataGrid.cs b/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/DataGrid.cs index 153bb70ad1d..21b3ebe1c72 100644 --- a/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/DataGrid.cs +++ b/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/DataGrid/DataGrid.cs @@ -3714,7 +3714,7 @@ protected override void OnPointerWheelChanged(PointerRoutedEventArgs e) PointerPoint pointerPoint = e.GetCurrentPoint(this); // A horizontal scroll happens if the mouse has a horizontal wheel OR if the horizontal scrollbar is not disabled AND the vertical scrollbar IS disabled - bool isForHorizontalScroll = pointerPoint.Properties.IsHorizontalMouseWheel | + bool isForHorizontalScroll = pointerPoint.Properties.IsHorizontalMouseWheel || (this.HorizontalScrollBarVisibility != ScrollBarVisibility.Disabled && this.VerticalScrollBarVisibility == ScrollBarVisibility.Disabled); if ((isForHorizontalScroll && this.HorizontalScrollBarVisibility == ScrollBarVisibility.Disabled) ||