private static GradientBrush GetGradient(XElement element) { GradientBrush gradient = null; if (element.Name.LocalName.Contains("linearGradient")) { var spreadMethod = element.Attribute("spreadMethod") != null?(GradientSpreadMethod)Enum.Parse(typeof(GradientSpreadMethod), element.Attribute("spreadMethod").Value):GradientSpreadMethod.Pad; var linearGradientAttributes = new LinearGradientAttributes { SpreadMethod = spreadMethod, X1 = Double.Parse(element.Attribute("x1").Value), X2 = Double.Parse(element.Attribute("x2").Value), Y1 = Double.Parse(element.Attribute("y1").Value), Y2 = Double.Parse(element.Attribute("y2").Value) }; var gradientStops = new List <GradientStopElement>(); foreach (var xElement in element.Elements()) { if (element.Name.LocalName.Contains("stop")) { gradientStops.Add(new GradientStopElement(xElement)); } } var gradientElement = new LinearGradientElement(linearGradientAttributes, gradientStops); gradient = gradientElement.GetGradientBrush(); } return(gradient); }
public LinearGradientElement(LinearGradientAttributes attributes, ICollection <GradientStopElement> gradientStop) : base(gradientStop) { _attributes = attributes; }