0

家族のメンバーを視覚的な家系図ツリーに表示したいと思います.http: //s12.postimg.org/y9lcyjhvx/Untitled.png

どこから始めればよいのか、何を使用できるのか、あるいは可能であれば C# Windows フォームでさえもわかりません。

誰か助けてくれませんか?

4

1 に答える 1

3

このスレッドを調べましたか? 系統樹の制御

基本的に、あなたにも適しているかもしれないGeniを使用することを提案しています

編集:「徒歩で」行きたい場合は、経験レベルに応じて多くのことができます. 最初に、適切なデータ構造が必要です。

public class Genealogy {
    Person me;

    [...]
}

public class Person {
    Person father, mother;

    [...]
}

これにより、(非常に基本的な)家系図を反映できます。次に、視覚化のために、最初にTreeViewクラスを使ってファジーしてみます。これにより、適切なインターフェースを実装すれば、階層の単純なテキスト表現が得られます。より高度な視覚化が必要な場合は、ツリーのすべてのレンダリングを実行する独自の UserControl 派生クラスを作成する必要があります。(その後、コントロールは通常のウィンドウフォーム要素などに配置できます)その後、次のような再帰原則に従うことができます

public class Genealogy {
    Person me;

    public void draw() {
        // Plots me!
        me.draw(0, 0);
    }
}

public class Person {
    Person father, mother;

    public void draw(int x, int y) {
        // Plot parents
        father.draw(x - width/2, y - height);
        mother.draw(x + width/2, y - height);

        // Plot the person image + name at (x,y)
        [...]
    }
}

今のところ、UI 描画のコマンドは頭にありませんが、これは私が追求する重要な戦略です。もちろん、マージン、ライン、その他すべてを追加して、ツリーにスパイスを加えたいと思うでしょう。

于 2013-08-31T07:11:43.867 に答える