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

Loading…
Cancel
Save