//========================================================================== public SvgGradientBaseElement(SvgDocument document, SvgBaseElement parent, XElement gradientElement) : base(document, parent, gradientElement) { XAttribute gradient_units_attribute = gradientElement.Attribute("gradientUnits"); if(gradient_units_attribute != null) switch(gradient_units_attribute.Value) { case "objectBoundingBox": GradientUnits = SvgGradientUnits.ObjectBoundingBox; break; case "userSpaceOnUse": GradientUnits = SvgGradientUnits.UserSpaceOnUse; break; default: throw new NotImplementedException(String.Format("gradientUnits value '{0}' is no supported", gradient_units_attribute.Value)); } XAttribute gradient_transform_attribute = gradientElement.Attribute("gradientTransform"); if(gradient_transform_attribute != null) Transform = SvgTransform.Parse(gradient_transform_attribute.Value); XAttribute spread_method_attribute = gradientElement.Attribute("spreadMethod"); if(spread_method_attribute != null) switch(spread_method_attribute.Value) { case "pad": SpreadMethod = SvgSpreadMethod.Pad; break; case "reflect": SpreadMethod = SvgSpreadMethod.Reflect; break; case "repeat": SpreadMethod = SvgSpreadMethod.Repeat; break; } foreach(XElement element in from element in gradientElement.Elements() where element.Name.NamespaceName == "http://www.w3.org/2000/svg" select element) switch(element.Name.LocalName) { case "stop": Stops.Add(new SvgStopElement(Document, this, element)); break; default: throw new NotImplementedException(String.Format("Unhandled element: {0}", element)); } }
//========================================================================== public SvgGradientBaseElement(SvgDocument document, SvgBaseElement parent, XElement gradientElement) : base(document, parent, gradientElement) { XAttribute gradient_units_attribute = gradientElement.Attribute("gradientUnits"); if (gradient_units_attribute != null) { switch (gradient_units_attribute.Value) { case "objectBoundingBox": GradientUnits = SvgGradientUnits.ObjectBoundingBox; break; case "userSpaceOnUse": GradientUnits = SvgGradientUnits.UserSpaceOnUse; break; default: throw new NotImplementedException(String.Format("gradientUnits value '{0}' is no supported", gradient_units_attribute.Value)); } } XAttribute gradient_transform_attribute = gradientElement.Attribute("gradientTransform"); if (gradient_transform_attribute != null) { Transform = SvgTransform.Parse(gradient_transform_attribute.Value); } XAttribute spread_method_attribute = gradientElement.Attribute("spreadMethod"); if (spread_method_attribute != null) { switch (spread_method_attribute.Value) { case "pad": SpreadMethod = SvgSpreadMethod.Pad; break; case "reflect": SpreadMethod = SvgSpreadMethod.Reflect; break; case "repeat": SpreadMethod = SvgSpreadMethod.Repeat; break; } } foreach (XElement element in from element in gradientElement.Elements() where element.Name.NamespaceName == "http://www.w3.org/2000/svg" select element) { switch (element.Name.LocalName) { case "stop": Stops.Add(new SvgStopElement(Document, this, element)); break; default: throw new NotImplementedException(String.Format("Unhandled element: {0}", element)); } } }