Pertanyaan Grafik dalam WPF menggunakan grafik # tidak digambar sebagai rantai


Saya menggunakan WPF dengan pustaka grafik # dan saya mencoba menggambar grafik sebagai rantai linear, jadi saya mendefinisikan beberapa simpul dan ujung-ujungnya bergabung dengan mereka sebagai

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

Tapi masalahnya adalah bahwa grafik yang dihasilkan tidak digambar seperti yang diharapkan, itu seperti yang berikut:

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

Dengan kata lain, vertex 3 melewati vertex 1 untuk mencapai vertex 4.

Berikut kode metode gambarnya

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

Dan inilah bagian dari kode xaml terkait dengan grafik #

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

32
2018-04-15 07:29


asal


Jawaban:


Saya sudah mencoba kode ini dan dari apa yang saya lihat tidak ada yang salah dengan itu. Mungkin beberapa referensi pustaka tidak sinkron (QuickGraph-GraphSharp). Saya mengkompilasi ulang Grafik # -Kontrol dan menggabungkan semuanya dalam satu solusi. Saya menghapus Binding di XAML dan memuat grafik di konstruktor MainWindow.

Grafik yang dihasilkan dari kode adalah: 0 -> 1 -> 2 -> 3-> 4 dan tidak: 1 -> 2 -> 3 -> 1-> 4. Anda dapat mengunduh kode sumber lengkap sini untuk melihat sendiri.


Referensi Lebih Lanjut


1
2017-10-20 01:32