Compunet 1 day ago
committed by GitHub
parent
commit
bde91052cb
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 17
      src/Avalonia.Controls/Primitives/ScrollBar.cs

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

@ -85,6 +85,7 @@ namespace Avalonia.Controls.Primitives
private bool _isExpanded;
private CompositeDisposable? _ownerSubscriptions;
private ScrollViewer? _owner;
private bool _isDragging;
/// <summary>
/// Initializes static members of the <see cref="ScrollBar"/> class.
@ -92,6 +93,7 @@ namespace Avalonia.Controls.Primitives
static ScrollBar()
{
Thumb.DragDeltaEvent.AddClassHandler<ScrollBar>((x, e) => x.OnThumbDragDelta(e), RoutingStrategies.Bubble);
Thumb.DragStartedEvent.AddClassHandler<ScrollBar>((x, e) => x.OnThumbDragStart(e), RoutingStrategies.Bubble);
Thumb.DragCompletedEvent.AddClassHandler<ScrollBar>((x, e) => x.OnThumbDragComplete(e), RoutingStrategies.Bubble);
FocusableProperty.OverrideMetadata<ScrollBar>(new(false));
@ -325,7 +327,7 @@ namespace Avalonia.Controls.Primitives
{
base.OnPointerExited(e);
if (AllowAutoHide)
if (AllowAutoHide && !_isDragging)
{
CollapseAfterDelay();
}
@ -491,8 +493,21 @@ namespace Avalonia.Controls.Primitives
{
OnScroll(ScrollEventType.ThumbTrack);
}
private void OnThumbDragStart(VectorEventArgs e)
{
_isDragging = true;
}
private void OnThumbDragComplete(VectorEventArgs e)
{
_isDragging = false;
if (AllowAutoHide && !IsPointerOver)
{
CollapseAfterDelay();
}
OnScroll(ScrollEventType.EndScroll);
}

Loading…
Cancel
Save