Lun*_*a28 32 c# wpf graph graph-sharp
我正在使用带有图形#库的WPF,我正在尝试将图形绘制为线性链,因此我定义了一些顶点,并将边连接为
new Edge<object>(vertices[i], vertices[i+1])
Run Code Online (Sandbox Code Playgroud)
但问题是结果图未按预期绘制,如下所示:
1 - > 2 - > 3 - > 1-> 4
换句话说,顶点3穿过顶点1到达顶点4.
这是绘图方法的代码
private void CreateGraphToVisualize()
{
var g = new BidirectionalGraph<object, IEdge<object>>();
// add the vertices to the graph
string[] vertices = new string[5];
for (int i = 0; i < 5; i++)
{
vertices[i] = i.ToString();
g.AddVertex(vertices[i]);
}
// add edges to the graph
g.AddEdge(new Edge<object>(vertices[0], vertices[1]));
g.AddEdge(new Edge<object>(vertices[1], vertices[2]));
g.AddEdge(new Edge<object>(vertices[2], vertices[3]));
g.AddEdge(new Edge<object>(vertices[3], vertices[4]));
GraphToVisualize = g;
}
Run Code Online (Sandbox Code Playgroud)
这是与图形相关的xaml代码的一部分#
<DockPanel Grid.Row="2" Margin="10,10,13,10">
<zoom:ZoomControl>
<graphsharp:GraphLayout x:Name="graphLayout"
Graph="{Binding ElementName=root,Path=GraphToVisualize}"
LayoutAlgorithmType="FR"
OverlapRemovalAlgorithmType="FSA"
HighlightAlgorithmType="Simple"/>
</zoom:ZoomControl>
</DockPanel>
Run Code Online (Sandbox Code Playgroud)
我已经尝试过这段代码,据我所知,它没有任何问题。某些库引用可能不同步(QuickGraph-GraphSharp)。我重新编译了 Graph#-Controls 并将其全部整合到一个解决方案中。我删除了 XAML 中的 Binding 并在 MainWindow 的构造函数中加载了图形。
我从代码中得到的结果图是: 0 -> 1 -> 2 -> 3-> 4 而不是: 1 -> 2 -> 3 -> 1-> 4。您可以在此处下载完整的源代码亲自看看。
进一步参考