Browse Source

Get rid of class handler in favor of OnPropertyChanged.

pull/3676/head
Dariusz Komosinski 7 years ago
parent
commit
4dd5e08d9e
  1. 24
      src/Avalonia.Controls/Primitives/ScrollBar.cs

24
src/Avalonia.Controls/Primitives/ScrollBar.cs

@ -55,16 +55,6 @@ namespace Avalonia.Controls.Primitives
{
Thumb.DragDeltaEvent.AddClassHandler<ScrollBar>((x, e) => x.OnThumbDragDelta(e), RoutingStrategies.Bubble);
Thumb.DragCompletedEvent.AddClassHandler<ScrollBar>((x, e) => x.OnThumbDragComplete(e), RoutingStrategies.Bubble);
static void AffectsIsVisible(AvaloniaProperty property)
{
property.Changed.AddClassHandler<ScrollBar>((x, e) => x.CalculateIsVisible());
}
AffectsIsVisible(MinimumProperty);
AffectsIsVisible(MaximumProperty);
AffectsIsVisible(ViewportSizeProperty);
AffectsIsVisible(VisibilityProperty);
}
/// <summary>
@ -106,9 +96,9 @@ namespace Avalonia.Controls.Primitives
public event EventHandler<ScrollEventArgs> Scroll;
/// <summary>
/// Calculates whether the scrollbar should be visible.
/// Calculates and updates whether the scrollbar should be visible.
/// </summary>
private void CalculateIsVisible()
private void UpdateIsVisible()
{
var isVisible = Visibility switch
{
@ -148,6 +138,16 @@ namespace Avalonia.Controls.Primitives
{
UpdatePseudoClasses(newValue.GetValueOrDefault<Orientation>());
}
else
{
if (property == MinimumProperty ||
property == MaximumProperty ||
property == ViewportSizeProperty ||
property == VisibilityProperty)
{
UpdateIsVisible();
}
}
}
protected override void OnTemplateApplied(TemplateAppliedEventArgs e)

Loading…
Cancel
Save