feat: make an assumption that user want to drag to opposite direction when two thumbs overlap.
This commit is contained in:
@@ -271,6 +271,7 @@ public class RangeSlider: TemplatedControl
|
||||
var isHorizontal = Orientation == Orientation.Horizontal;
|
||||
var lowerThumbPosition = isHorizontal? _track?.LowerThumb?.Bounds.Center.X : _track?.LowerThumb?.Bounds.Center.Y;
|
||||
var upperThumbPosition = isHorizontal? _track?.UpperThumb?.Bounds.Center.X : _track?.UpperThumb?.Bounds.Center.Y;
|
||||
var mid = isHorizontal? _track?.Bounds.Center.X : _track?.Bounds.Center.Y;
|
||||
var pointerPosition = isHorizontal? point.Position.X : point.Position.Y;
|
||||
|
||||
var lowerDistance = Math.Abs((lowerThumbPosition ?? 0) - pointerPosition);
|
||||
@@ -280,10 +281,12 @@ public class RangeSlider: TemplatedControl
|
||||
{
|
||||
return _track?.LowerThumb;
|
||||
}
|
||||
else
|
||||
if(lowerDistance>upperDistance)
|
||||
{
|
||||
return _track?.UpperThumb;
|
||||
}
|
||||
if (IsDirectionReversed) return pointerPosition < mid ? _track?.LowerThumb : _track?.UpperThumb;
|
||||
return pointerPosition > mid ? _track?.LowerThumb : _track?.UpperThumb;
|
||||
}
|
||||
|
||||
private double GetValueByPoint(PointerPoint point)
|
||||
|
||||
Reference in New Issue
Block a user