C# 如何使用QuickGraph C渲染我的图形#

C# 如何使用QuickGraph C渲染我的图形#,c#,render,directed-graph,quickgraph,C#,Render,Directed Graph,Quickgraph,我是新来的。我按照文档页面上的示例将顶点和边添加到图形中。 现在,我想在windows窗体上显示我的图形。我使用Graphviz实现这个目的,它生成一个.DOT文件作为输出。下面是渲染的代码示例: IVertexAndEdgeListGraph<TVertex,TEdge> g= ...; var graphviz = new GraphvizAlgorithm<TVertex,TEdge>(g); string output = graphviz.Generate(ne

我是新来的。我按照文档页面上的示例将顶点和边添加到图形中。 现在,我想在windows窗体上显示我的图形。我使用Graphviz实现这个目的,它生成一个.DOT文件作为输出。下面是渲染的代码示例:

IVertexAndEdgeListGraph<TVertex,TEdge> g= ...;
var graphviz = new GraphvizAlgorithm<TVertex,TEdge>(g);
string output = graphviz.Generate(new FileDotEngine(), "graph");
IVertexAndEdgeListGraph g=。。。;
var graphviz=新的GraphvizAlgorithm(g);
字符串输出=graphviz.Generate(新文件点引擎(),“图形”);

但是,我的编译器没有检测到
FileDotEngine()
。此外,我不知道生成.DOT文件后要做什么。

您必须自己提供一个
FileDotEngine
;例如,见。生成jpg的简单
FileDotEngine
可以是:

public sealed class FileDotEngine : IDotEngine
{
    public string Run(GraphvizImageType imageType, string dot, string outputFileName)
    {
        string output = outputFileName;
        File.WriteAllText(output, dot);

        // assumes dot.exe is on the path:
        var args = string.Format(@"{0} -Tjpg -O", output);
        System.Diagnostics.Process.Start("dot.exe", args);
        return output;
    }
}

然后,您可以在图片框或类似框中显示生成的图像。

另一种方法是在winforms应用程序中托管WPF控件,然后使用来显示图形。不过,我自己还没有试过。

非常感谢先生的回复。但是,我的代码找不到文件“dot.exe”。我只是搜索了一下,才知道它也不在我的系统中。我现在该怎么办?我可以从某个地方下载吗?dot.exe是graphviz软件包的一部分-从你的问题来看,我以为你已经用过了。谷歌搜索graphviz和windows,你很快就会找到它。这个问题中的代码只是其中的一个例子