internal CompositionScopedBatch StartAnimations(AnimationCollection target) { lock (Locker) { Compositor compositor = target?.FirstOrDefault()?.TargetVisual?.Compositor; if (compositor == null) { return(null); } CompositionScopedBatch resultBatch = compositor.CreateScopedBatch(CompositionBatchTypes.Animation); foreach (var animation in target) { animation.TargetVisual.StartAnimation(animation.TargetProperty.ToString(), animation.BuildCompositionAnimation()); } resultBatch.End(); return(resultBatch); } }