2012-04-15 99 views
32

Tôi đang sử dụng WPF với biểu đồ # thư viện và tôi đang cố gắng vẽ biểu đồ dưới dạng chuỗi tuyến tính, vì vậy tôi đã xác định một số đỉnh và các cạnh nối nhưBiểu đồ trong WPF sử dụng biểu đồ # không được vẽ như một chuỗi

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

Nhưng vấn đề là đồ thị kết quả không được rút ra như mong đợi, nó giống như sau:

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

Trong các từ khác, đỉnh 3 đi qua đỉnh 1 để tới đỉnh 4.

Dưới đây là đoạn code của phương pháp vẽ

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

Và đây là một phần của mã XAML liên quan đến đồ thị #

<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

Tôi đã thử đoạn code bạn đã dán trên và tôi không thể tái tạo tại địa phương - tôi nhận được '0 -> 1 -> 2 -> 3 -> 4' như mong đợi. –

+1

Mã bạn đã dán hoạt động chính xác. Bạn đang sử dụng phiên bản mới nhất? –

Trả lời

1

Tôi đã thử mã này và từ những gì tôi có thể thấy không có gì sai với nó. Nó có thể là một số tài liệu tham khảo thư viện không đồng bộ (QuickGraph-GraphSharp). Tôi biên dịch lại các đồ thị # -Controls và phù hợp với tất cả cùng nhau trong một giải pháp. Tôi loại bỏ các ràng buộc trong XAML và nạp đồ thị trong constructor của MainWindow.

Biểu đồ kết quả mà tôi nhận được từ mã là: 0 -> 1 -> 2 -> 3-> 4 và không: 1 -> 2 -> 3 -> 1-> 4. Bạn có thể tải xuống mã nguồn đầy đủ here để xem cho chính bạn.


Tham khảo thêm

Các vấn đề liên quan