我需要动态生成“方框”的方形矩阵(例如2x2,3x3等),每个方框包含一个文本框和一个按钮。这些框和文本也将根据窗口的大小调整大小。我应该使用stackPanel,datagrid或dockpanel来解决这个问题,它们的优缺点是什么?感谢任何建议。
由WPF开发,VS2010。
答案 0 :(得分:7)
我会用Grid控件来处理它。如果您也告诉它,网格中的列和行将根据网格的大小自动调整大小。此外,网格会自动填充它们所放置的区域,这听起来就像你所追求的那样。
堆叠面板不是很灵活。基本上只是将一个项目放在另一个项目旁边,没有自动调整大小。
如果您的内容应该固定在中间并且其他内容适合中心,则停靠面板很适合。
答案 1 :(得分:6)
查看UniformGrid面板。
答案 2 :(得分:2)
如果您希望彼此符合一定数量的项目,则堆栈面板非常有用。动态添加项目时使用非常简单有效,但它的简单性意味着它没有任何调整大小的能力。
在将多个不同的物品放置和组织到窗户上时,Dockpanels非常有用,特别是在将物品锚定到顶部,底部,左侧,右侧,然后装配到中心的剩余空间时(我最近发现它们非常方便)与膨胀机配合使用时)。没有真正的缺点,对你来说很有效。
如果您不需要动态更改布局,我建议网格控件是您最好的选择,因为您可以将网格拆分为您需要的矩阵。每侧使用星号(*)表示所有方框均匀调整大小以适合您拥有的窗口。功能是有限的,但根据您的要求的声音,网格将覆盖它。
可以找到有关布局的有用教程here.