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 System;
using Avalonia.Controls.Mixins;
using Avalonia.Controls.Primitives; using Avalonia.Controls.Primitives;
using Avalonia.Data;
using Avalonia.Input; using Avalonia.Input;
using Avalonia.Interactivity; using Avalonia.Interactivity;
using Avalonia.Layout; using Avalonia.Layout;
@ -40,13 +40,11 @@ namespace Avalonia.Controls
/// </summary> /// </summary>
static Slider() static Slider()
{ {
PressedMixin.Attach<Slider>();
OrientationProperty.OverrideDefaultValue(typeof(Slider), Orientation.Horizontal); OrientationProperty.OverrideDefaultValue(typeof(Slider), Orientation.Horizontal);
Thumb.DragStartedEvent.AddClassHandler<Slider>((x, e) => x.OnThumbDragStarted(e), RoutingStrategies.Bubble); Thumb.DragStartedEvent.AddClassHandler<Slider>((x, e) => x.OnThumbDragStarted(e), RoutingStrategies.Bubble);
Thumb.DragDeltaEvent.AddClassHandler<Slider>((x, e) => x.OnThumbDragDelta(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); 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);
} }
/// <summary> /// <summary>
@ -201,24 +199,6 @@ namespace Avalonia.Controls
return value; 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) private void UpdatePseudoClasses(Orientation o)
{ {
PseudoClasses.Set(":vertical", o == Orientation.Vertical); PseudoClasses.Set(":vertical", o == Orientation.Vertical);

Loading…
Cancel
Save