diff --git a/src/Avalonia.Animation/Animatable.cs b/src/Avalonia.Animation/Animatable.cs
index e51103aa55..5208356570 100644
--- a/src/Avalonia.Animation/Animatable.cs
+++ b/src/Avalonia.Animation/Animatable.cs
@@ -69,7 +69,7 @@ namespace Avalonia.Animation
if (match != null)
{
- match.Apply(this, e.OldValue, e.NewValue);
+ match.Apply(this, Clock.GlobalClock, e.OldValue, e.NewValue);
}
}
}
diff --git a/src/Avalonia.Animation/ITransition.cs b/src/Avalonia.Animation/ITransition.cs
index e2ffe7fc6e..7afaa2325a 100644
--- a/src/Avalonia.Animation/ITransition.cs
+++ b/src/Avalonia.Animation/ITransition.cs
@@ -13,7 +13,7 @@ namespace Avalonia.Animation
///
/// Applies the transition to the specified .
///
- IDisposable Apply(Animatable control, object oldValue, object newValue);
+ IDisposable Apply(Animatable control, Clock clock, object oldValue, object newValue);
///
/// Gets the property to be animated.
diff --git a/src/Avalonia.Animation/TransitionInstance.cs b/src/Avalonia.Animation/TransitionInstance.cs
index 4c61adea28..b0c927f3cd 100644
--- a/src/Avalonia.Animation/TransitionInstance.cs
+++ b/src/Avalonia.Animation/TransitionInstance.cs
@@ -18,10 +18,12 @@ namespace Avalonia.Animation
private IDisposable timerSubscription;
private TimeSpan startTime;
private TimeSpan duration;
+ private readonly Clock _clock;
- public TransitionInstance(TimeSpan Duration)
+ public TransitionInstance(Clock clock, TimeSpan Duration)
{
duration = Duration;
+ _clock = clock;
}
private void TimerTick(TimeSpan t)
@@ -45,8 +47,8 @@ namespace Avalonia.Animation
protected override void Subscribed()
{
- startTime = Clock.GlobalClock.CurrentTime;
- timerSubscription = Clock.GlobalClock.Subscribe(TimerTick);
+ startTime = _clock.CurrentTime;
+ timerSubscription = _clock.Subscribe(TimerTick);
PublishNext(0.0d);
}
}
diff --git a/src/Avalonia.Animation/Transition`1.cs b/src/Avalonia.Animation/Transition`1.cs
index 4b01c54f5c..23df7f9807 100644
--- a/src/Avalonia.Animation/Transition`1.cs
+++ b/src/Avalonia.Animation/Transition`1.cs
@@ -49,9 +49,9 @@ namespace Avalonia.Animation
public abstract IObservable DoTransition(IObservable progress, T oldValue, T newValue);
///
- public virtual IDisposable Apply(Animatable control, object oldValue, object newValue)
+ public virtual IDisposable Apply(Animatable control, Clock clock, object oldValue, object newValue)
{
- var transition = DoTransition(new TransitionInstance(Duration), (T)oldValue, (T)newValue);
+ var transition = DoTransition(new TransitionInstance(clock, Duration), (T)oldValue, (T)newValue);
return control.Bind((AvaloniaProperty)Property, transition, Data.BindingPriority.Animation);
}