Ошибка при добавлении элемента "rect" в документ программой c # - PullRequest
0 голосов
/ 14 мая 2019

Я пытаюсь добавить некоторые "прямоугольные" элементы в документ SVG через консольное приложение C #.Элементы "rect" добавляются, и они присутствуют в структуре документа SVG, но они невидимы.

Когда я добавил элемент "rect" вручную, тогда все было хорошо.

Svg изображение послевыполнение приложения app result

Svg после добавления «rect» вручную manual result

Мой код

    public static MemoryStream Draw(Stream stream)

    {
        var outputStream = new MemoryStream();

        var svgDocument = XDocument.Load(stream);

        if (svgDocument.Root != null)
        {
            var gElements = svgDocument.Root.Elements("{http://www.w3.org/2000/svg}g");

            var damageLayer = gElements.FirstOrDefault(x => x.Attribute("id")?.Value == "Damages");

            var damage = new XElement("rect", new XAttribute("x", 205), new XAttribute("y", 205), new XAttribute("width", 15), new XAttribute("height", 15));

            damageLayer.Add(damage);
        }

        svgDocument.Save(outputStream);

        return outputStream;
    }

У вас есть предложения или способы решить эту проблему?проблема?Если да, пожалуйста, дайте мне знать.Любая помощь ценится

1 Ответ

1 голос
/ 14 мая 2019

Вам необходимо создать прямоугольник в пространстве имен SVG, т.е.

XNamespace namespace = "http://www.w3.org/2000/svg";
var damage = new XElement(namespace + "rect", ...
...