// Changes the from TransformOrigin so that it apply the same result as before, but with the unit of the "to" value
        // return false if not possible
        internal bool TryConvertTransformOriginUnits(ref TransformOrigin from, ref TransformOrigin to)
        {
            Length fromX = from.x, fromY = from.y, toX = to.x, toY = to.y;

            if (!TryConvertLengthUnits(StylePropertyId.TransformOrigin, ref fromX, ref toX, 0))
            {
                return(false);
            }
            if (!TryConvertLengthUnits(StylePropertyId.TransformOrigin, ref fromY, ref toY, 1))
            {
                return(false);
            }

            from.x = fromX;
            from.y = fromY;
            return(true);
        }
 bool IStylePropertyAnimations.Start(StylePropertyId id, TransformOrigin from, TransformOrigin to, int durationMs, int delayMs, Func <float, float> easingCurve)
 {
     return(GetStylePropertyAnimationSystem().StartTransition(this, id, from, to, durationMs, delayMs, easingCurve));
 }