示例#1
0
        //--------------------------------------------------------------------------------------------------

        internal void Write(XmlWriter writer, SvgConverter conv)
        {
            if (StrokeWidth.HasValue)
            {
                writer.WriteAttributeString("stroke-width", conv.ToSvgLength(StrokeWidth.Value));
            }

            switch (LineStyle)
            {
            case LineStyle.Dot:
                writer.WriteAttributeString("stroke-dasharray", "0.5 0.5");
                break;

            case LineStyle.ShortDash:
                writer.WriteAttributeString("stroke-dasharray", "1 0.5");
                break;

            case LineStyle.Dash:
                writer.WriteAttributeString("stroke-dasharray", "2 0.5");
                break;

            case LineStyle.DotDash:
                writer.WriteAttributeString("stroke-dasharray", "2 0.5 0.5 0.5");
                break;
            }

            var sb = new StringBuilder();

            if (StrokeColor.HasValue)
            {
                sb.Append($"stroke:{conv.ToSvgColor(StrokeColor.Value)};");
            }

            if (FillMode == FillMode.None)
            {
                sb.Append($"fill:none;");
            }
            else
            {
                if (FillColor.HasValue)
                {
                    sb.Append($"fill:{conv.ToSvgColor(FillColor.Value)};");
                }
            }

            if (sb.Length > 0)
            {
                writer.WriteAttributeString("style", sb.ToString());
            }

            if (!FontFamily.IsNullOrEmpty())
            {
                writer.WriteAttributeString("font-family", FontFamily);
            }
            if (FontSize.HasValue)
            {
                writer.WriteAttributeString("font-size", conv.ToSvgLength(FontSize.Value));
            }
        }