2011-11-04 116 views
0

我写了一个WPF控件,它接受许多UIElement对象作为输入,并显示它们垂直或水平停靠。该控件公开了用于枚举,删除和插入子项的函数,但是在内部,我使用网格来构建布局,为每个项目创建一个行/列并在它们之间插入一个GridSplitter。要做到这一点,我已经继承了ContentControl,并且在初始化时我只是使用Grid来设置Content属性。一切都按预期工作,但是现在我想知道这是否会让我的控件用户感到困惑,因为拥有多个项目的ContentControl是违反直觉的。我应该继承哪些WPF控件?

应该从ItemsControl继承吗? 我应该直接从“内容不可知”的Control继承吗? 有没有更好的方法来做到这一点?

在此先感谢。

回答

4

你所描述的听起来像一个Panel - 基本上是一个负责许多元素布局的控件。我会考虑从此继承。

+0

同意。 Panel具有接受任意数量的孩子而不仅仅是像ContentControl这样的单个孩子的额外好处。 –