XElement FromVector4KeyFrameAnimation(Vector4KeyFrameAnimation obj) { return(new XElement(GetCompositionObjectName(obj), GetContents())); IEnumerable <XObject> GetContents() { foreach (var item in GetCompositionObjectContents(obj)) { yield return(item); } } }
public void TraitsTest() { var animationEx = new Vector4KeyFrameAnimation(); Assert.AreEqual(Vector4Traits.Instance, animationEx.Traits); }
public static Vector4KeyFrameAnimation AddKeyFrame(this Vector4KeyFrameAnimation animation, float normalizedProgressKey, Vector4 value, CompositionEasingFunction ease = null) { animation.InsertKeyFrame(normalizedProgressKey, value, ease); return animation; }
public static CompositionAnimation GetAnimation <TKeyFrame>( CompositionObject target, string property, TimeSpan?delay, TimeSpan duration, RepeatOption repeat, ArraySegment <TKeyFrame> keyFrames) where TKeyFrame : struct, IKeyFrameInfo { KeyFrameAnimation animation; if (typeof(T) == typeof(bool)) { BooleanKeyFrameAnimation boolAnimation = target.Compositor.CreateBooleanKeyFrameAnimation(); foreach (var keyFrame in keyFrames) { if (keyFrame.TryInsertExpressionKeyFrame(boolAnimation, duration)) { continue; } boolAnimation.InsertKeyFrame(keyFrame.GetNormalizedProgress(duration), keyFrame.GetValueAs <bool>()); } animation = boolAnimation; } else if (typeof(T) == typeof(float)) { ScalarKeyFrameAnimation scalarAnimation = target.Compositor.CreateScalarKeyFrameAnimation(); foreach (var keyFrame in keyFrames) { if (keyFrame.TryInsertExpressionKeyFrame(scalarAnimation, duration)) { continue; } CompositionEasingFunction?easingFunction = target.Compositor.TryCreateEasingFunction(keyFrame.EasingType, keyFrame.EasingMode); if (easingFunction is null) { scalarAnimation.InsertKeyFrame(keyFrame.GetNormalizedProgress(duration), keyFrame.GetValueAs <float>()); } else { scalarAnimation.InsertKeyFrame(keyFrame.GetNormalizedProgress(duration), keyFrame.GetValueAs <float>(), easingFunction); } } animation = scalarAnimation; } else if (typeof(T) == typeof(double)) { ScalarKeyFrameAnimation scalarAnimation = target.Compositor.CreateScalarKeyFrameAnimation(); foreach (var keyFrame in keyFrames) { if (keyFrame.TryInsertExpressionKeyFrame(scalarAnimation, duration)) { continue; } CompositionEasingFunction?easingFunction = target.Compositor.TryCreateEasingFunction(keyFrame.EasingType, keyFrame.EasingMode); if (easingFunction is null) { scalarAnimation.InsertKeyFrame(keyFrame.GetNormalizedProgress(duration), (float)keyFrame.GetValueAs <double>()); } else { scalarAnimation.InsertKeyFrame(keyFrame.GetNormalizedProgress(duration), (float)keyFrame.GetValueAs <double>(), easingFunction); } } animation = scalarAnimation; } else if (typeof(T) == typeof(Vector2)) { Vector2KeyFrameAnimation vector2Animation = target.Compositor.CreateVector2KeyFrameAnimation(); foreach (var keyFrame in keyFrames) { if (keyFrame.TryInsertExpressionKeyFrame(vector2Animation, duration)) { continue; } CompositionEasingFunction?easingFunction = target.Compositor.TryCreateEasingFunction(keyFrame.EasingType, keyFrame.EasingMode); if (easingFunction is null) { vector2Animation.InsertKeyFrame(keyFrame.GetNormalizedProgress(duration), keyFrame.GetValueAs <Vector2>()); } else { vector2Animation.InsertKeyFrame(keyFrame.GetNormalizedProgress(duration), keyFrame.GetValueAs <Vector2>(), easingFunction); } } animation = vector2Animation; } else if (typeof(T) == typeof(Vector3)) { Vector3KeyFrameAnimation vector3Animation = target.Compositor.CreateVector3KeyFrameAnimation(); foreach (var keyFrame in keyFrames) { if (keyFrame.TryInsertExpressionKeyFrame(vector3Animation, duration)) { continue; } CompositionEasingFunction?easingFunction = target.Compositor.TryCreateEasingFunction(keyFrame.EasingType, keyFrame.EasingMode); if (easingFunction is null) { vector3Animation.InsertKeyFrame(keyFrame.GetNormalizedProgress(duration), keyFrame.GetValueAs <Vector3>()); } else { vector3Animation.InsertKeyFrame(keyFrame.GetNormalizedProgress(duration), keyFrame.GetValueAs <Vector3>(), easingFunction); } } animation = vector3Animation; } else if (typeof(T) == typeof(Vector4)) { Vector4KeyFrameAnimation vector4Animation = target.Compositor.CreateVector4KeyFrameAnimation(); foreach (var keyFrame in keyFrames) { if (keyFrame.TryInsertExpressionKeyFrame(vector4Animation, duration)) { continue; } CompositionEasingFunction?easingFunction = target.Compositor.TryCreateEasingFunction(keyFrame.EasingType, keyFrame.EasingMode); if (easingFunction is null) { vector4Animation.InsertKeyFrame(keyFrame.GetNormalizedProgress(duration), keyFrame.GetValueAs <Vector4>()); } else { vector4Animation.InsertKeyFrame(keyFrame.GetNormalizedProgress(duration), keyFrame.GetValueAs <Vector4>(), easingFunction); } } animation = vector4Animation; } else if (typeof(T) == typeof(Color)) { ColorKeyFrameAnimation colorAnimation = target.Compositor.CreateColorKeyFrameAnimation(); foreach (var keyFrame in keyFrames) { if (keyFrame.TryInsertExpressionKeyFrame(colorAnimation, duration)) { continue; } CompositionEasingFunction?easingFunction = target.Compositor.TryCreateEasingFunction(keyFrame.EasingType, keyFrame.EasingMode); if (easingFunction is null) { colorAnimation.InsertKeyFrame(keyFrame.GetNormalizedProgress(duration), keyFrame.GetValueAs <Color>()); } else { colorAnimation.InsertKeyFrame(keyFrame.GetNormalizedProgress(duration), keyFrame.GetValueAs <Color>(), easingFunction); } } animation = colorAnimation; } else if (typeof(T) == typeof(Quaternion)) { QuaternionKeyFrameAnimation quaternionAnimation = target.Compositor.CreateQuaternionKeyFrameAnimation(); foreach (var keyFrame in keyFrames) { if (keyFrame.TryInsertExpressionKeyFrame(quaternionAnimation, duration)) { continue; } CompositionEasingFunction?easingFunction = target.Compositor.TryCreateEasingFunction(keyFrame.EasingType, keyFrame.EasingMode); if (easingFunction is null) { quaternionAnimation.InsertKeyFrame(keyFrame.GetNormalizedProgress(duration), keyFrame.GetValueAs <Quaternion>()); } else { quaternionAnimation.InsertKeyFrame(keyFrame.GetNormalizedProgress(duration), keyFrame.GetValueAs <Quaternion>(), easingFunction); } } animation = quaternionAnimation; } else { throw new InvalidOperationException("Invalid animation type"); } animation.Duration = duration; if (delay.HasValue) { animation.DelayTime = delay !.Value; } animation.Target = property; (animation.IterationBehavior, animation.IterationCount) = repeat.ToBehaviorAndCount(); return(animation); }
internal Vector4KeyFrameTransitionAnimationFluentContext([NotNull] StoryBoardFluentContext parentStoryBoard, [NotNull] Vector4KeyFrameAnimation animation, [NotNull] String targetProperty) : base(parentStoryBoard, animation, targetProperty) { }
public static Vector4KeyFrameAnimation SetDuration(this Vector4KeyFrameAnimation animation, TimeSpan duration) { animation.Duration = duration; return(animation); }
public static Vector4KeyFrameAnimation SetDuration(this Vector4KeyFrameAnimation animation, double duration) { return(SetDuration(animation, TimeSpan.FromSeconds(duration))); }
public static Vector4KeyFrameAnimation SetTarget(this Vector4KeyFrameAnimation animation, string target) { animation.Target = target; return(animation); }