internal Animatable <T> CloneWithSelectedValue(Func <T, T> selector) { if (IsAnimated) { var keyframes = from kf in KeyFrames.ToArray() select new KeyFrame <T>(kf.Frame, selector(kf.Value), kf.Easing); return(new Animatable <T>(keyframes, PropertyIndex)); } else { return(new Animatable <T>(selector(InitialValue), PropertyIndex)); } }