Browse Source

no boxing required.

pull/5886/head
Dan Walmsley 5 years ago
parent
commit
472e179e41
  1. 2
      src/Avalonia.Animation/AnimationInstance`1.cs
  2. 8
      src/Avalonia.Animation/Animators/Animator`1.cs
  3. 6
      src/Avalonia.Visuals/Animation/Animators/SolidColorBrushAnimator.cs

2
src/Avalonia.Animation/AnimationInstance`1.cs

@ -12,7 +12,7 @@ namespace Avalonia.Animation
/// Handles interpolation and time-related functions
/// for keyframe animations.
/// </summary>
internal class AnimationInstance<T> : SingleSubscriberObservableBase<object>
internal class AnimationInstance<T> : SingleSubscriberObservableBase<T>
{
private T _lastInterpValue;
private T _firstKFValue;

8
src/Avalonia.Animation/Animators/Animator`1.cs

@ -104,6 +104,11 @@ namespace Avalonia.Animation.Animators
throw new Exception("Index time is out of keyframe time range.");
}
public virtual IDisposable BindAnimation(Animatable control, IObservable<T> instance)
{
return control.Bind((AvaloniaProperty<T>)Property, instance, BindingPriority.Animation);
}
/// <summary>
/// Runs the KeyFrames Animation.
/// </summary>
@ -116,7 +121,8 @@ namespace Avalonia.Animation.Animators
clock ?? control.Clock ?? Clock.GlobalClock,
onComplete,
InterpolationHandler);
return control.Bind(Property, instance, BindingPriority.Animation);
return BindAnimation(control, instance);
}
/// <summary>

6
src/Avalonia.Visuals/Animation/Animators/SolidColorBrushAnimator.cs

@ -1,4 +1,5 @@
using System;
using Avalonia.Data;
using Avalonia.Media;
using Avalonia.Media.Immutable;
@ -13,6 +14,11 @@ namespace Avalonia.Animation.Animators
{
return new ImmutableSolidColorBrush(ColorAnimator.InterpolateCore(progress, oldValue.Color, newValue.Color));
}
public override IDisposable BindAnimation(Animatable control, IObservable<ISolidColorBrush> instance)
{
return control.Bind((AvaloniaProperty<IBrush>)Property, instance, BindingPriority.Animation);
}
}
[Obsolete]

Loading…
Cancel
Save