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

时间:2013-10-09 13:37:44

标签: c# render directed-graph quickgraph

我是QuickGraph的新手。我按照文档页面上的示例添加顶点和放大器。边缘到我的图表。 现在,我想在Windows窗体上显示我的图形。我正在使用Graphviz来生成.DOT文件作为输出。我正在按照下面的代码示例进行渲染:

IVertexAndEdgeListGraph<TVertex,TEdge> g= ...;
var graphviz = new GraphvizAlgorithm<TVertex,TEdge>(g);
string output = graphviz.Generate(new FileDotEngine(), "graph");

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

2 个答案:

答案 0 :(得分:2)

你必须自己提供FileDotEngine;例如,见this example on Github。生成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;
    }
}

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

答案 1 :(得分:0)

另一种方法是在winforms应用程序中托管WPF控件,然后使用Graph#显示图表。但是,我自己并没有尝试过。