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;
 }