C# VV/SVG不呈现文本

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

我试图在我的C#项目中使用VV/SVG库(,当前版本)。我已经设法做了一些简单的绘图,但是在渲染文本时出现了奇怪的行为

下面的代码将文本元素添加到SvgDocument,但位图中不会呈现任何文本

        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
,这在我看来是正确的。

非常好!你不知道我类似问题的答案: