From beb7cec6c49aba28b7d91f0db19309d4336b0cbf Mon Sep 17 00:00:00 2001 From: rabbitism Date: Fri, 2 Jun 2023 12:58:33 +0800 Subject: [PATCH] feat: resolve dragging position flickering issue. --- src/Avalonia.Controls/ToggleSwitch.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Avalonia.Controls/ToggleSwitch.cs b/src/Avalonia.Controls/ToggleSwitch.cs index 1868f47145..48b068d324 100644 --- a/src/Avalonia.Controls/ToggleSwitch.cs +++ b/src/Avalonia.Controls/ToggleSwitch.cs @@ -230,7 +230,7 @@ namespace Avalonia.Controls _knobsPanel!.ClearValue(Canvas.LeftProperty); PseudoClasses.Set(":dragging", false); - + if (shouldBecomeChecked == IsChecked) { UpdateKnobPos(shouldBecomeChecked); @@ -239,6 +239,7 @@ namespace Avalonia.Controls { SetCurrentValue(IsCheckedProperty, shouldBecomeChecked); } + UpdateKnobTransitions(); } else { @@ -254,6 +255,10 @@ namespace Avalonia.Controls { if (_knobsPanelPressed) { + if(_knobsPanel != null) + { + _knobsPanel.Transitions = null; + } var difference = e.GetPosition(_switchKnob) - _switchStartPoint; if ((!_isDragging) && (System.Math.Abs(difference.X) > 3))