예제 #1
0
        public static WpfFill CreateFill(SvgDocument document, string absoluteUri)
        {
            XmlNode node = document.GetNodeByUri(absoluteUri);

            SvgGradientElement gradientNode = node as SvgGradientElement;

            if (gradientNode != null)
            {
                return(new WpfGradientFill(gradientNode));
            }

            SvgPatternElement patternNode = node as SvgPatternElement;

            if (patternNode != null)
            {
                return(new WpfPatternFill(patternNode));
            }

            SvgSolidColorElement solidColorNode = node as SvgSolidColorElement;

            if (solidColorNode != null)
            {
                return(new WpfSolidColorFill(solidColorNode));
            }

            return(null);
        }
예제 #2
0
        private Matrix GetTransformMatrix(SvgGradientElement gradientElement)
        {
            SvgMatrix svgMatrix = ((SvgTransformList)gradientElement.GradientTransform.AnimVal).TotalMatrix;

            Matrix transformMatrix = new Matrix((float)svgMatrix.A, (float)svgMatrix.B, (float)svgMatrix.C,
                                                (float)svgMatrix.D, (float)svgMatrix.E, (float)svgMatrix.F);

            return(transformMatrix);
        }
예제 #3
0
        public void TestHref()
        {
            SvgGradientElement elm = Util.GetXmlElement("<linearGradient xlink:href='kalle.svg#someOtherGradient' />", "", "linearGradient") as SvgGradientElement;

            Assert.AreEqual("kalle.svg#someOtherGradient", elm.Href.AnimVal);

            elm = Util.GetXmlElement("<linearGradient />", "", "linearGradient") as SvgGradientElement;
            Assert.AreEqual("", elm.Href.AnimVal);
        }
예제 #4
0
        public void TestStopsCount()
        {
            SvgGradientElement elm = Util.GetXmlElement("<linearGradient><stop offset='5%' stop-color='blue' /><stop offset='10%' stop-color='red' /></linearGradient>", "", "linearGradient") as SvgGradientElement;

            Assert.AreEqual(2, elm.Stops.Count);

            elm = Util.GetXmlElement("<linearGradient />", "", "linearGradient") as SvgGradientElement;
            Assert.AreEqual(0, elm.Stops.Count);
        }
        private MatrixTransform GetTransformMatrix(SvgGradientElement gradientElement)
        {
            SvgMatrix svgMatrix =
                ((SvgTransformList)gradientElement.GradientTransform.AnimVal).TotalMatrix;

            MatrixTransform transformMatrix = new MatrixTransform(svgMatrix.A, svgMatrix.B, svgMatrix.C,
                                                                  svgMatrix.D, svgMatrix.E, svgMatrix.F);

            return(transformMatrix);
        }
예제 #6
0
        public void TestGradientUnits()
        {
            SvgGradientElement elm = Util.GetXmlElement("<linearGradient gradientUnits='userSpaceOnUse' />", "", "linearGradient") as SvgGradientElement;

            Assert.AreEqual((ushort)SvgUnitType.UserSpaceOnUse, elm.GradientUnits.AnimVal);

            elm = Util.GetXmlElement("<linearGradient gradientUnits='objectBoundingBox' />", "", "linearGradient") as SvgGradientElement;
            Assert.AreEqual((ushort)SvgUnitType.ObjectBoundingBox, elm.GradientUnits.AnimVal);

            elm = Util.GetXmlElement("<linearGradient />", "", "linearGradient") as SvgGradientElement;
            Assert.AreEqual((ushort)SvgUnitType.ObjectBoundingBox, elm.GradientUnits.AnimVal);
        }
예제 #7
0
        public void TestGradientTransform()
        {
            SvgGradientElement        elm  = Util.GetXmlElement("<linearGradient gradientTransform='translate(1,1) rotate(34)' />", "", "linearGradient") as SvgGradientElement;
            ISvgAnimatedTransformList satl = elm.GradientTransform as ISvgAnimatedTransformList;

            Assert.IsNotNull(satl);
            Assert.AreEqual(2, elm.GradientTransform.AnimVal.NumberOfItems);

            elm  = Util.GetXmlElement("<linearGradient />", "", "linearGradient") as SvgGradientElement;
            satl = elm.GradientTransform as ISvgAnimatedTransformList;
            Assert.IsNotNull(satl);
            Assert.AreEqual(0, elm.GradientTransform.AnimVal.NumberOfItems);
        }
예제 #8
0
        public void TestSpreadMethod()
        {
            SvgGradientElement elm = Util.GetXmlElement("<linearGradient spreadMethod='reflect' />", "", "linearGradient") as SvgGradientElement;

            Assert.AreEqual((ushort)SvgSpreadMethod.Reflect, elm.SpreadMethod.AnimVal);

            elm = Util.GetXmlElement("<linearGradient spreadMethod='repeat' />", "", "linearGradient") as SvgGradientElement;
            Assert.AreEqual((ushort)SvgSpreadMethod.Repeat, elm.SpreadMethod.AnimVal);

            elm = Util.GetXmlElement("<linearGradient spreadMethod='pad' />", "", "linearGradient") as SvgGradientElement;
            Assert.AreEqual((ushort)SvgSpreadMethod.Pad, elm.SpreadMethod.AnimVal);

            elm = Util.GetXmlElement("<linearGradient />", "", "linearGradient") as SvgGradientElement;
            Assert.AreEqual((ushort)SvgSpreadMethod.Pad, elm.SpreadMethod.AnimVal);
        }
예제 #9
0
        public static GdiFill CreateFill(SvgDocument document, string absoluteUri)
        {
            XmlNode node = document.GetNodeByUri(absoluteUri);

            SvgGradientElement gradientNode = node as SvgGradientElement;

            if (gradientNode != null)
            {
                return(new GdiGradientFill(gradientNode));
            }

            SvgPatternElement patternNode = node as SvgPatternElement;

            if (patternNode != null)
            {
                return(new GdiPatternFill(patternNode));
            }

            return(null);
        }
예제 #10
0
 public WpfGradientFill(SvgGradientElement gradientElement)
 {
     _gradientElement = gradientElement;
 }
 public WpfGradientFill(SvgGradientElement gradientElement)
 {
     _isUserSpace     = false;
     _gradientElement = gradientElement;
 }
예제 #12
0
 public GdiGradientFill(SvgGradientElement gradientElement)
 {
     _gradientElement = gradientElement;
 }
예제 #13
0
 protected GdiGradientFill(SvgGradientElement gradientElement)
 {
     _gradientElement = gradientElement;
 }
 public GradientPaintServer(SvgGradientElement gradientElement)
 {
     _gradientElement = gradientElement;
 }