2012-04-15 7 views
32

Estoy usando WPF con la biblioteca de gráficos # 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 comoGráfico en WPF usando el gráfico # no se dibuja como una cadena

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

pero el problema es que la gráfica resultante no se dibuja como se esperaba, es como la siguiente:

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

En 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 he aquí una parte del código XAML relacionada con 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> 
+8

que he probado el código que ha pegado arriba y que no pueden reproducirse localmente - obtengo '0 -> 1 -> 2 -> 3 -> 4' como se esperaba. –

+1

El código que pegó funciona correctamente. ¿Estás usando la última versión? –

Respuesta

1

He probado este código y por lo que puedo ver No hay nada malo con eso. 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 verlo usted mismo.


Referencias adicionales

Cuestiones relacionadas