2013-10-09 28 views
3

我是QuickGraph的新手。我按照文檔頁面上的示例將頂點&邊添加到我的圖中。 現在,我想在Windows窗體上顯示我的圖形。我正在使用Graphviz來生成一個.DOT文件作爲輸出。我下面的代碼示例如下渲染:如何使用QuickGraph C渲染我的圖形#

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

但是,我的編譯器沒有檢測FileDotEngine()。而且,在生成.DOT文件後,我不知道該做什麼。

+0

僅供參考此問題中的代碼僅僅是https://quickgraph.codeplex.com/wikipage?title=Visualization%20Using%20Graphviz&referringTitle=Documentation – DaveInCaz

回答

2

您必須自己提供FileDotEngine;例如參見this example on 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; 
    } 
} 

然後,你可以在一個圖片框或類似的顯示所產生的圖像。

+0

的示例。非常感謝您的回覆。但是,我的代碼無法找到文件「dot.exe」。我只是搜索它,並知道它不在我的系統上。我現在應該怎麼做?我可以從某個位置下載它嗎? –

+0

dot.exe是如果graphviz軟件包的一部分 - 從你的問題我以爲你已經使用它。谷歌for graphviz和windows,你會發現它在任何時間 – Marijn

+2

Windows GraphViz包在這裏:http://graphviz.org/Download_windows.php –

0

另一種方法是在您的winforms應用程序中託管一個WPF控件,然後使用Graph#來顯示圖形。不過,我自己並沒有嘗試過。