Fixed ScrollViewer in ItemFilterBlockView handling mouse wheel events (#105)

This commit is contained in:
Ben Wallis 2018-12-03 16:28:22 +00:00
parent 876e98437e
commit 05b729edf8
2 changed files with 20 additions and 4 deletions

View File

@ -277,7 +277,7 @@
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
</Grid.Resources>
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled">
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled" PreviewMouseWheel="UIElement_OnPreviewMouseWheel">
<ItemsControl ItemsSource="{Binding Source={StaticResource BlockItemsCollectionViewSource}}"
ItemContainerStyle="{StaticResource BlockItemFadeInStyle}">
<ItemsControl.ItemsPanel>
@ -338,7 +338,7 @@
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
</Grid.Resources>
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled">
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled" PreviewMouseWheel="UIElement_OnPreviewMouseWheel">
<ItemsControl ItemsSource="{Binding Source={StaticResource BlockItemsCollectionViewSource}}"
ItemContainerStyle="{StaticResource BlockItemFadeInStyle}">
<ItemsControl.ItemsPanel>

View File

@ -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);
}
}
}
}
}