C# VV/SVG不呈现文本
我试图在我的C#项目中使用VV/SVG库(,当前版本)。我已经设法做了一些简单的绘图,但是在渲染文本时出现了奇怪的行为 下面的代码将文本元素添加到SvgDocument,但位图中不会呈现任何文本C# VV/SVG不呈现文本,c#,svg,vvvv,C#,Svg,Vvvv,我试图在我的C#项目中使用VV/SVG库(,当前版本)。我已经设法做了一些简单的绘图,但是在渲染文本时出现了奇怪的行为 下面的代码将文本元素添加到SvgDocument,但位图中不会呈现任何文本 this.SvgDoc = new SvgDocument(); this.SvgDoc.Width = new SvgUnit(400); this.SvgDoc.Height = new SvgUnit(400); SvgText t
this.SvgDoc = new SvgDocument();
this.SvgDoc.Width = new SvgUnit(400);
this.SvgDoc.Height = new SvgUnit(400);
SvgText txt = new SvgText("TEST");
txt.X.Add(new SvgUnit(100));
txt.Y.Add(new SvgUnit(100));
//txt.FontFamily = "Arial";
txt.FontSize = new SvgUnit(15);
txt.Fill = new SvgColourServer(Color.Black);
this.SvgDoc.Children.Add(txt);
var bmp2 = this.SvgDoc.Draw();
this.PBoxRes.Image = bmp2;
如果我尝试添加圆节点,它会呈现ok。文本将不会呈现,直到我将svg存储为字符串,使用SvgDocument.FromSvg()解析它,然后呈现位图。这是可行的,但是对于较大的SVG和较小的更改来说速度太慢了。我可以做些什么来让文本在不重新转换的情况下即时呈现吗?尝试添加以下内容:
SvgContentNode newContent = new SvgContentNode();
newContent.Content = "Text";
txt.Nodes.Add(newContent);
我偶然发现了同样的问题,花了我一些时间才弄明白。似乎
SvgText
需要子对象才能包含在生成的.svg文件的XML中
对我来说,将文本作为嵌套的内容节点进行包含可以实现以下目的:
new SvgDocument
{
Width = 100,
Height = 100,
FontSize = 10,
Nodes =
{
new SvgText
{
Nodes = {new SvgContentNode {Content = "my text"}},
X = {10},
Y = {10}
}
}
}
我不确定这是否是添加文本的最佳方式,但它在生成的.svg文件中创建了XML标记
my text
,这在我看来是正确的。非常好!你不知道我类似问题的答案: