private static PointKeyFrame CreatePointKeyFrmas(KeyFrames <Point> Model) { PointKeyFrame frame = null; switch (Model.Type) { case KeyFramesType.Spline: frame = new SplinePointKeyFrame() { KeySpline = Model.Spline }; break; case KeyFramesType.Linear: frame = new LinearPointKeyFrame(); break; case KeyFramesType.Easing: frame = new EasingPointKeyFrame() { EasingFunction = Model.EasingFunction }; break; case KeyFramesType.Discrete: frame = new DiscretePointKeyFrame(); break; default: break; } frame.KeyTime = KeyTime.FromTimeSpan(TimeSpan.FromSeconds(Model.KeyTime)); frame.Value = Model.Value; return(frame); }
/// <summary> /// Create PointAnimation /// </summary> /// <param name="parentObj">Storyboard parent object</param> /// <param name="target">Animation target object</param> /// <param name="property">Property path to animate</param> /// <param name="beginTime">Animation begin time</param> /// <param name="frameTime">Frame time collection</param> /// <param name="values">Target value collection</param> /// <param name="splines">List of KeySpline</param> /// <returns>PointAnimationUsingKeyFrames</returns> internal static PointAnimationUsingKeyFrames CreatePointAnimation(FrameworkElement parentObj, DependencyObject target, String property, Double beginTime, DoubleCollection frameTime, PointCollection values, List <KeySpline> splines) { PointAnimationUsingKeyFrames da = new PointAnimationUsingKeyFrames(); #if WPF target.SetValue(FrameworkElement.NameProperty, target.GetType().Name + Guid.NewGuid().ToString().Replace('-', '_')); Storyboard.SetTargetName(da, target.GetValue(FrameworkElement.NameProperty).ToString()); (parentObj as ObservableObject).Chart._rootElement.RegisterName((string)target.GetValue(FrameworkElement.NameProperty), target); #else Storyboard.SetTarget(da, target); #endif Storyboard.SetTargetProperty(da, new PropertyPath(property)); da.BeginTime = TimeSpan.FromSeconds(beginTime); for (Int32 index = 0; index < values.Count; index++) { SplinePointKeyFrame keyFrame = new SplinePointKeyFrame(); if (splines != null) { keyFrame.KeySpline = splines[index]; } keyFrame.KeyTime = KeyTime.FromTimeSpan(TimeSpan.FromSeconds(frameTime[index])); keyFrame.Value = values[index]; da.KeyFrames.Add(keyFrame); } return(da); }