c# wpf graph graph-sharp

c# - El gráfico en WPF usando el gráfico#no se dibuja como una cadena



graph graph-sharp (1)

Estoy usando WPF con graph # library y estoy tratando de dibujar un gráfico como una cadena lineal, así que definí algunos vértices y los bordes que los unían

new Edge<object>(vertices[i], vertices[i+1])

Pero el problema es que el gráfico resultante no se dibuja como se esperaba, es como el siguiente:

1 -> 2 -> 3 -> 1-> 4

En otras palabras, el vértice 3 está pasando por el vértice 1 para alcanzar el vértice 4.

Aquí está el código del método de dibujo

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

Y aquí hay una parte del código xaml relacionado con el gráfico #

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


Intenté este código y, por lo que veo, no tiene nada de malo. Es posible que algunas referencias de biblioteca no estén sincronizadas (QuickGraph-GraphSharp). Recopilé Graph-Controls y lo intenté todo en la única solución. Quité el enlace en XAML y cargué el gráfico en el constructor de MainWindow.

El gráfico resultante que obtengo del código es: 0 -> 1 -> 2 -> 3-> 4 y no : 1 -> 2 -> 3 -> 1-> 4. Puede descargar el código fuente completo here para ver por ti mismo

Referencias adicionales