From 05b729edf848203aecac9514a26cf05727e2f5c0 Mon Sep 17 00:00:00 2001 From: Ben Wallis Date: Mon, 3 Dec 2018 16:28:22 +0000 Subject: [PATCH] Fixed ScrollViewer in ItemFilterBlockView handling mouse wheel events (#105) --- Filtration/Views/ItemFilterBlockView.xaml | 4 ++-- Filtration/Views/ItemFilterBlockView.xaml.cs | 20 ++++++++++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/Filtration/Views/ItemFilterBlockView.xaml b/Filtration/Views/ItemFilterBlockView.xaml index f771ccc..02cadb6 100644 --- a/Filtration/Views/ItemFilterBlockView.xaml +++ b/Filtration/Views/ItemFilterBlockView.xaml @@ -277,7 +277,7 @@ - + @@ -338,7 +338,7 @@ - + diff --git a/Filtration/Views/ItemFilterBlockView.xaml.cs b/Filtration/Views/ItemFilterBlockView.xaml.cs index 85c27d1..e02df92 100644 --- a/Filtration/Views/ItemFilterBlockView.xaml.cs +++ b/Filtration/Views/ItemFilterBlockView.xaml.cs @@ -1,4 +1,6 @@ -using System.Windows.Input; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Input; using System.Windows.Media; namespace Filtration.Views @@ -25,10 +27,24 @@ namespace Filtration.Views { if (e.Key == Key.Enter) { - System.Windows.Controls.AutoCompleteBox box = sender as System.Windows.Controls.AutoCompleteBox; + AutoCompleteBox box = sender as AutoCompleteBox; dynamic viewModel = box.DataContext; viewModel.AddBlockGroupCommand.Execute(null); } } + + private void UIElement_OnPreviewMouseWheel(object sender, MouseWheelEventArgs e) + { + if (sender is ScrollViewer viewer && !e.Handled) + { + e.Handled = true; + + var eventArg = new MouseWheelEventArgs(e.MouseDevice, e.Timestamp, e.Delta) {RoutedEvent = MouseWheelEvent, Source = viewer}; + if (viewer.Parent is UIElement parent) + { + parent.RaiseEvent(eventArg); + } + } + } } }