public void AddAnimation(object animationObject, string propertyName, double startValue, double endValue, double seconds) { if (!Enabled || FrameRate < 10) { return; } int steps = (int)(seconds * FrameRate); lock (SyncObject) { AnimationTarget target = new AnimationTarget { AnimationObject = animationObject, PropertyName = propertyName, StartValue = startValue, EndValue = endValue, Steps = steps }; target.Initialize(); AnimationTargets.AddFirst(target); if (Status == AnimationStatus.Idle) { Status = AnimationStatus.Started; } } }