【发布时间】:2019-05-14 12:24:01
【问题描述】:
我正在尝试通过 c# 控制台应用程序向 svg 文档添加一些“rect”元素。 正在添加一个“rect”元素,它们存在于 svg 文档的结构中,但它们是不可见的。
当我手动添加“rect”元素时,一切正常。
应用执行后的 Svg 图像
手动添加“rect”后的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;
}
您有任何解决该问题的建议或方法吗?如果你这样做,请告诉我。任何帮助表示赞赏
【问题讨论】:
-
你确定这个问题是由“xmlns”属性引起的吗?
-
您将默认命名空间更改为无 w3schools.com/xml/xml_namespaces.asp
Default Namespace替代方法是在您的矩形中提供正确的 svg 命名空间 -
我删除了“xmlns”属性,但没有任何改变
标签: c# svg linq-to-xml