Browse Source

user PressedMixin for slider.

feature/fluent-slider
Dan Walmsley 6 years ago
parent
commit
f03a6e0e5a
  1. 26
      src/Avalonia.Controls/Slider.cs

26
src/Avalonia.Controls/Slider.cs

@ -1,6 +1,6 @@
using System;
using Avalonia.Controls.Mixins;
using Avalonia.Controls.Primitives;
using Avalonia.Data;
using Avalonia.Input;
using Avalonia.Interactivity;
using Avalonia.Layout;
@ -40,13 +40,11 @@ namespace Avalonia.Controls
/// </summary>
static Slider()
{
PressedMixin.Attach<Slider>();
OrientationProperty.OverrideDefaultValue(typeof(Slider), Orientation.Horizontal);
Thumb.DragStartedEvent.AddClassHandler<Slider>((x, e) => x.OnThumbDragStarted(e), RoutingStrategies.Bubble);
Thumb.DragDeltaEvent.AddClassHandler<Slider>((x, e) => x.OnThumbDragDelta(e), RoutingStrategies.Bubble);
Thumb.DragCompletedEvent.AddClassHandler<Slider>((x, e) => x.OnThumbDragCompleted(e), RoutingStrategies.Bubble);
PointerPressedEvent.AddClassHandler<Slider>((x, e) => x.HandlePointerPressed(e), RoutingStrategies.Tunnel, true);
PointerReleasedEvent.AddClassHandler<Slider>((x, e) => x.HandlePointerReleased(), RoutingStrategies.Tunnel, true);
PointerCaptureLostEvent.AddClassHandler<Slider>((x, e) => x.HandlePointerReleased(), RoutingStrategies.Tunnel, true);
Thumb.DragCompletedEvent.AddClassHandler<Slider>((x, e) => x.OnThumbDragCompleted(e), RoutingStrategies.Bubble);
}
/// <summary>
@ -201,24 +199,6 @@ namespace Avalonia.Controls
return value;
}
private void HandlePointerPressed(PointerPressedEventArgs e)
{
if (e.GetCurrentPoint(this).Properties.IsLeftButtonPressed)
{
UpdatePseudoClasses(true);
}
}
private void HandlePointerReleased()
{
UpdatePseudoClasses(false);
}
private void UpdatePseudoClasses(bool isPressed)
{
PseudoClasses.Set(":pressed", isPressed);
}
private void UpdatePseudoClasses(Orientation o)
{
PseudoClasses.Set(":vertical", o == Orientation.Vertical);

Loading…
Cancel
Save