Как визуализировать мой график с помощью QuickGraph C#

Я новичок в QuickGraph. Я следовал примерам на странице документации, чтобы добавить вершины и ребра в мой график. Теперь я хочу отобразить мой график в форме окна. Я использую Graphviz для этой цели, который генерирует файл.DOT в качестве вывода. Я следую приведенному ниже примеру кода для рендеринга:

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

Но мой компилятор не обнаруживает FileDotEngine(), Более того, я не знаю, что делать после создания файла.DOT.

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

Затем вы можете отобразить сгенерированное изображение в графическом окне или аналогичном.

Другой подход - разместить элемент управления WPF в приложении winforms, а затем использовать Graph# для отображения графика. Я не пробовал это сам, однако.

Другие вопросы по тегам