Ejemplo n.º 1
0
        public static void FromXml(XElement xStyleList, IList <FillStyleRGBA> fillStyles, IList <LineStyleEx> lineStyles)
        {
            var xFillStyles = xStyleList.RequiredElement("fillStyles");

            foreach (var xFillStyle in xFillStyles.Elements())
            {
                var fillStyle = XFillStyle.FromXmlRGBA(xFillStyle);
                fillStyles.Add(fillStyle);
            }

            var xLineStyles = xStyleList.RequiredElement("lineStyles");

            foreach (var xLineStyle in xLineStyles.Elements())
            {
                var lineStyle = XLineStyleEx.FromXml(xLineStyle);
                lineStyles.Add(lineStyle);
            }
        }
Ejemplo n.º 2
0
        public static LineStyleEx FromXml(XElement xLineStyle)
        {
            var xStartCapStyle = xLineStyle.Attribute("startCapStyle");
            var xJointStyle    = xLineStyle.Attribute("jointStyle");
            var xEndCapStyle   = xLineStyle.Attribute("endCapStyle");

            var xReserved = xLineStyle.Attribute("reserved");

            var res = new LineStyleEx {
                Width         = xLineStyle.RequiredUShortAttribute("width"),
                StartCapStyle = (CapStyle)byte.Parse(xStartCapStyle.Value),
                JoinStyle     = (JoinStyle)byte.Parse(xJointStyle.Value),
                HasFill       = xLineStyle.RequiredBoolAttribute("hasFill"),
                NoHScale      = xLineStyle.RequiredBoolAttribute("noHScale"),
                NoVScale      = xLineStyle.RequiredBoolAttribute("noVScale"),
                PixelHinting  = xLineStyle.RequiredBoolAttribute("pixelHinting"),
                NoClose       = xLineStyle.RequiredBoolAttribute("noClose"),
                EndCapStyle   = (CapStyle)byte.Parse(xEndCapStyle.Value)
            };

            if (xReserved != null)
            {
                res.Reserved = byte.Parse(xReserved.Value);
            }

            if (res.JoinStyle == JoinStyle.Miter)
            {
                res.MilterLimitFactor = xLineStyle.RequiredDoubleAttribute("miterFactor");
            }

            var xFillStyle = xLineStyle.Element("fillStyle");
            var xFillColor = xLineStyle.Element("fillColor");

            if (xFillStyle != null)
            {
                res.FillStyle = XFillStyle.FromXmlRGBA(xFillStyle.Elements().First());
            }
            if (xFillColor != null)
            {
                res.Color = XColorRGBA.FromXml(xFillColor.Elements().First());
            }
            return(res);
        }