From 4dd5e08d9e4773ff7913ae25cd098151bc6253e3 Mon Sep 17 00:00:00 2001 From: Dariusz Komosinski Date: Fri, 27 Mar 2020 15:20:42 +0100 Subject: [PATCH] Get rid of class handler in favor of OnPropertyChanged. --- src/Avalonia.Controls/Primitives/ScrollBar.cs | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Avalonia.Controls/Primitives/ScrollBar.cs b/src/Avalonia.Controls/Primitives/ScrollBar.cs index 982c1cdbfc..161c7121c5 100644 --- a/src/Avalonia.Controls/Primitives/ScrollBar.cs +++ b/src/Avalonia.Controls/Primitives/ScrollBar.cs @@ -55,16 +55,6 @@ namespace Avalonia.Controls.Primitives { Thumb.DragDeltaEvent.AddClassHandler((x, e) => x.OnThumbDragDelta(e), RoutingStrategies.Bubble); Thumb.DragCompletedEvent.AddClassHandler((x, e) => x.OnThumbDragComplete(e), RoutingStrategies.Bubble); - - static void AffectsIsVisible(AvaloniaProperty property) - { - property.Changed.AddClassHandler((x, e) => x.CalculateIsVisible()); - } - - AffectsIsVisible(MinimumProperty); - AffectsIsVisible(MaximumProperty); - AffectsIsVisible(ViewportSizeProperty); - AffectsIsVisible(VisibilityProperty); } /// @@ -106,9 +96,9 @@ namespace Avalonia.Controls.Primitives public event EventHandler Scroll; /// - /// Calculates whether the scrollbar should be visible. + /// Calculates and updates whether the scrollbar should be visible. /// - private void CalculateIsVisible() + private void UpdateIsVisible() { var isVisible = Visibility switch { @@ -148,6 +138,16 @@ namespace Avalonia.Controls.Primitives { UpdatePseudoClasses(newValue.GetValueOrDefault()); } + else + { + if (property == MinimumProperty || + property == MaximumProperty || + property == ViewportSizeProperty || + property == VisibilityProperty) + { + UpdateIsVisible(); + } + } } protected override void OnTemplateApplied(TemplateAppliedEventArgs e)