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