3

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

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

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

4

2 回答 2

2

你必须提供一个FileDotEngine自己;例如参见Github 上的这个例子FileDotEngine生成 jpg的简单方法可能是:

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;
    }
}

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

于 2013-10-11T07:33:21.687 回答
0

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

于 2013-10-11T10:07:59.883 回答