2012-04-15 14 views
32

グラフ#ライブラリでWPFを使用していますが、グラフを線形チェーンとして描画しようとしています。グラフ#を使ったグラフはチェーンとして描画されていません

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

しかし、などの問題が予想されるように得られたグラフが描かれていないことである、それは次のようなものだ:

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

のコードだと、ここで私はこのコードを試してみましたが、私が間違って何もない見ることができるものからきた#

<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

私はあなたの上に貼り付けられていると私はローカルに再現することはできませんコードを試してみた - 私は '0を取得します→1→2→3→4となる。 –

+1

貼り付けたコードが正しく動作します。最新バージョンを使用していますか? –

答えて

1

をグラフに関連するXAMLコードの一部ですそれと。一部のライブラリ参照が同期していないことがあります(QuickGraph-GraphSharp)。私はGraph#Controlを再コンパイルし、それをすべて1つの解決策にまとめました。私はXAMLでBindingを削除し、グラフをMainWindowのコンストラクタにロードしました。

0-> 1 - > 2 - > 3> 4および:1 - > 2 - > 3 - > 1> 4です。完全なソースコードhereをご覧ください。


さらに参照

関連する問題