internal static ActiveTimeline <T> Add <T>( this ConcurrentDictionary <Guid, ActiveTimeline <T> > actives, T timeline, AnimationSettings settings, FrameworkElement element, AnimationState state, IterationBehavior iterationBehavior, int iterationCount, bool isSequence, int sequenceOrder = 0) where T : DependencyObject { var elementGuid = Animations.GetElementGuid(element); var timelineGuid = Guid.NewGuid(); if (elementGuid.Equals(Guid.Empty)) { elementGuid = Guid.NewGuid(); } Animations.SetElementGuid(element, elementGuid); if (timeline != null) { Animations.SetElementGuid(timeline, elementGuid); Animations.SetTimelineGuid(timeline, timelineGuid); } var active = new ActiveTimeline <T>() { ElementGuid = elementGuid, Timeline = timeline, Settings = settings, Element = element, State = state, IterationBehavior = iterationBehavior, IterationCount = iterationCount, IsSequence = isSequence, SequenceOrder = sequenceOrder }; if (actives.TryAdd(timelineGuid, active) && Animations.EnableActiveTimelinesLogging == LogLevel.Debug) { LogActiveTimelines(actives, "Active timeline added"); } return(active); }
public static void SetIterationBehavior(DependencyObject obj, IterationBehavior value) => obj.SetValue(IterationBehaviorProperty, value);