我正在尝试通过c#控制台应用程序向svg文档中添加一些“矩形”元素。 正在添加“矩形”元素,它们存在于svg文档的结构中,但不可见。
当我手动添加“ rect”元素时,一切正常。
应用执行后的SVG图像
手动添加“矩形”后的SVG
有我的代码
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;
}
您有解决此问题的建议或方法吗?如果您愿意,请告诉我。任何帮助表示赞赏
答案 0 :(得分:1)
您需要在SVG命名空间中创建rect,即
XNamespace namespace = "http://www.w3.org/2000/svg";
var damage = new XElement(namespace + "rect", ...