diff --git a/src/MaterialDesignThemes.Wpf/ScrollViewerAssist.cs b/src/MaterialDesignThemes.Wpf/ScrollViewerAssist.cs index 11f3658d4e..b2a78197eb 100644 --- a/src/MaterialDesignThemes.Wpf/ScrollViewerAssist.cs +++ b/src/MaterialDesignThemes.Wpf/ScrollViewerAssist.cs @@ -56,7 +56,7 @@ public static PaddingMode GetPaddingMode(DependencyObject element) => (PaddingMode)element.GetValue(PaddingModeProperty); public static readonly DependencyProperty IgnorePaddingProperty = DependencyProperty.RegisterAttached( - "IgnorePadding", typeof(bool), typeof(ScrollViewerAssist), new PropertyMetadata(true)); + "IgnorePadding", typeof(bool), typeof(ScrollViewerAssist), new PropertyMetadata(true)); public static void SetIgnorePadding(DependencyObject element, bool value) => element.SetValue(IgnorePaddingProperty, value); public static bool GetIgnorePadding(DependencyObject element) => (bool)element.GetValue(IgnorePaddingProperty); @@ -191,7 +191,7 @@ private static void OnBubbleVerticalScrollChanged(DependencyObject d, Dependency { if (sv.IsLoaded) { - DoOnLoaded(sv); + ApplyBubbleVerticalScrollHooks(sv); } else { @@ -204,7 +204,7 @@ static void OnLoaded(object? sender, RoutedEventArgs e) { if (sender is ScrollViewer sv) { - DoOnLoaded(sv); + ApplyBubbleVerticalScrollHooks(sv); } } @@ -244,7 +244,7 @@ static void RegisterForMouseWheelEvent(ScrollViewer sv) sv.AddHandler(UIElement.MouseWheelEvent, (RoutedEventHandler)ScrollViewerOnMouseWheel, true); } - static void DoOnLoaded(ScrollViewer sv) + static void ApplyBubbleVerticalScrollHooks(ScrollViewer sv) { if (GetBubbleVerticalScroll(sv)) { @@ -255,6 +255,8 @@ static void DoOnLoaded(ScrollViewer sv) else { RemoveHook(sv); + UnregisterForMouseWheelEvent(sv); + UnregisterForUnloadedEvent(sv); } } diff --git a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.DataGrid.xaml b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.DataGrid.xaml index 0b2d8a19fb..fb0e3a3216 100644 --- a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.DataGrid.xaml +++ b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.DataGrid.xaml @@ -489,7 +489,7 @@ BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="{TemplateBinding wpf:DataGridAssist.CornerRadius}" SnapsToDevicePixels="True"> - + diff --git a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.ListBox.xaml b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.ListBox.xaml index 014d0783bd..89ec715a60 100644 --- a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.ListBox.xaml +++ b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.ListBox.xaml @@ -358,6 +358,7 @@ @@ -641,7 +642,8 @@ + wpf:ScrollViewerAssist.PaddingMode="{Binding Path=(wpf:ScrollViewerAssist.PaddingMode), RelativeSource={RelativeSource TemplatedParent}}" + wpf:ScrollViewerAssist.BubbleVerticalScroll="{Binding Path=(wpf:ScrollViewerAssist.BubbleVerticalScroll), RelativeSource={RelativeSource TemplatedParent}}"> diff --git a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.ListView.xaml b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.ListView.xaml index 77dce2c859..8cf4224d41 100644 --- a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.ListView.xaml +++ b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.ListView.xaml @@ -34,6 +34,7 @@ wpf:ScrollViewerAssist.SyncHorizontalOffset="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" wpf:ScrollViewerAssist.IgnorePadding="{Binding Path=(wpf:ScrollViewerAssist.IgnorePadding), RelativeSource={RelativeSource TemplatedParent}}" wpf:ScrollViewerAssist.PaddingMode="{Binding Path=(wpf:ScrollViewerAssist.PaddingMode), RelativeSource={RelativeSource TemplatedParent}}" + wpf:ScrollViewerAssist.BubbleVerticalScroll="{Binding Path=(wpf:ScrollViewerAssist.BubbleVerticalScroll), RelativeSource={RelativeSource TemplatedParent}}" DockPanel.Dock="Top" Focusable="false" HorizontalScrollBarVisibility="Hidden" @@ -212,9 +213,9 @@ - + - + @@ -224,7 +225,8 @@ - + diff --git a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TreeListView.xaml b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TreeListView.xaml index 6b0875216f..0650611f9d 100644 --- a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TreeListView.xaml +++ b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TreeListView.xaml @@ -284,6 +284,7 @@ Style="{DynamicResource {x:Static GridView.GridViewScrollViewerStyleKey}}" wpf:ScrollViewerAssist.IgnorePadding="{Binding Path=(wpf:ScrollViewerAssist.IgnorePadding), RelativeSource={RelativeSource TemplatedParent}}" wpf:ScrollViewerAssist.PaddingMode="{Binding Path=(wpf:ScrollViewerAssist.PaddingMode), RelativeSource={RelativeSource TemplatedParent}}" + wpf:ScrollViewerAssist.BubbleVerticalScroll="{Binding Path=(wpf:ScrollViewerAssist.BubbleVerticalScroll), RelativeSource={RelativeSource TemplatedParent}}" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}" CanContentScroll="false" diff --git a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TreeView.xaml b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TreeView.xaml index 9b5cb01956..c66fd96ed9 100644 --- a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TreeView.xaml +++ b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TreeView.xaml @@ -23,6 +23,7 @@ Background="{TemplateBinding Background}" wpf:ScrollViewerAssist.IgnorePadding="{Binding Path=(wpf:ScrollViewerAssist.IgnorePadding), RelativeSource={RelativeSource TemplatedParent}}" wpf:ScrollViewerAssist.PaddingMode="{Binding Path=(wpf:ScrollViewerAssist.PaddingMode), RelativeSource={RelativeSource TemplatedParent}}" + wpf:ScrollViewerAssist.BubbleVerticalScroll="{Binding Path=(wpf:ScrollViewerAssist.BubbleVerticalScroll), RelativeSource={RelativeSource TemplatedParent}}" CanContentScroll="false" Focusable="false" HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}"