From ffe56b55bcf00ec9b10a6262643b73e8ed0d3830 Mon Sep 17 00:00:00 2001 From: Jumar Macato Date: Tue, 14 May 2019 16:44:38 +0800 Subject: [PATCH] Fix #2490 --- src/Avalonia.Animation/TransitionInstance.cs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/Avalonia.Animation/TransitionInstance.cs b/src/Avalonia.Animation/TransitionInstance.cs index eff2c4e9f3..fe8103adb2 100644 --- a/src/Avalonia.Animation/TransitionInstance.cs +++ b/src/Avalonia.Animation/TransitionInstance.cs @@ -30,13 +30,22 @@ namespace Avalonia.Animation { var interpVal = (double)t.Ticks / _duration.Ticks; - if (interpVal > 1d || interpVal < 0d) + // Clamp interpolation value. + if (interpVal >= 1d) { + PublishNext(1d); PublishCompleted(); - return; } - - PublishNext(interpVal); + // Cut-off when interpolation value is negative. + else if (interpVal < 0d) + { + PublishNext(0d); + PublishCompleted(); + } + else + { + PublishNext(interpVal); + } } protected override void Unsubscribed()