Наследование: ISvgPreserveAspectRatio
Пример #1
0
 public SvgAnimatedPreserveAspectRatio(string attr, SvgElement ownerElement)
 {
     _baseVal = new SvgPreserveAspectRatio(attr, ownerElement);
     _animVal = _baseVal;
 }
 public SvgAnimatedPreserveAspectRatio(string attr, SvgElement ownerElement)
 {
     baseVal = new SvgPreserveAspectRatio(attr, ownerElement);
     animVal = baseVal;
 }
Пример #3
0
        private Transform GetAspectRatioTransform(SvgPreserveAspectRatio spar,
            SvgRect sourceBounds, SvgRect elementBounds)
        {
            double[] transformArray = spar.FitToViewBox(sourceBounds, elementBounds);

            double translateX = transformArray[0];
            double translateY = transformArray[1];
            double scaleX = transformArray[2];
            double scaleY = transformArray[3];

            Transform translateMatrix = null;
            Transform scaleMatrix = null;
            if ((float)translateX >= 0 && (float)translateY >= 0)
            {
                translateMatrix = new TranslateTransform(translateX, translateY);
            }
            if ((float)scaleX != 1.0f && (float)scaleY != 1.0)
            {
                scaleMatrix = new ScaleTransform(scaleX, scaleY);
            }

            if (translateMatrix != null && scaleMatrix != null)
            {
                // Create a TransformGroup to contain the transforms
                // and add the transforms to it.
                TransformGroup transformGroup = new TransformGroup();
                transformGroup.Children.Add(scaleMatrix);
                transformGroup.Children.Add(translateMatrix);

                return transformGroup;
            }
            else if (translateMatrix != null)
            {
                return translateMatrix;
            }
            else if (scaleMatrix != null)
            {
                return scaleMatrix;
            }

            return null;
        }