【发布时间】:2011-05-20 23:12:30
【问题描述】:
我需要动态生成一个由“框”(例如 2x2、3x3 等)组成的方阵,每个都包含一个文本框和一个按钮。这些框和文本也将根据窗口的大小调整大小。我应该使用 stackPanel、datagrid 或 dockpanel 来解决这个问题吗?它们的优点或缺点是什么?感谢您的任何建议。
由 WPF、VS2010 开发。
【问题讨论】:
标签: .net wpf datagrid wpf-controls
我需要动态生成一个由“框”(例如 2x2、3x3 等)组成的方阵,每个都包含一个文本框和一个按钮。这些框和文本也将根据窗口的大小调整大小。我应该使用 stackPanel、datagrid 或 dockpanel 来解决这个问题吗?它们的优点或缺点是什么?感谢您的任何建议。
由 WPF、VS2010 开发。
【问题讨论】:
标签: .net wpf datagrid wpf-controls
当您有一定数量的项目希望彼此对齐时,堆栈面板很有用。在动态添加项目时使用起来非常简单且有效,但它的简单性意味着它实际上并没有任何调整大小的能力。
在将多个不同的项目放置和组织到窗口上时,Dockpanels 很有用,特别是在将项目锚定到顶部、底部、左侧、右侧然后适合中心的剩余空间时(我最近发现它们非常方便当与扩展器一起使用时)。没有真正的缺点,很可能对您有效。
如果您不需要动态更改布局,我建议您最好使用网格控件,因为您可以将网格拆分为您需要的矩阵。在每一侧使用星号 (*) 意味着所有框将均匀调整大小以适合您拥有的窗口。功能有限,但根据您的要求,网格会覆盖它。
一个有用的布局教程可以找到here.
【讨论】:
我会使用 Grid 控件来处理它。如果您也告诉它,网格内的列和行将根据网格的大小自动调整大小。此外,网格会自动填充它们所在的区域,这听起来像是您所追求的。
堆栈面板不是很灵活。基本上只是将一个项目放在另一个旁边,没有自动调整大小。
如果您的内容应该固定在一边,而其他一些内容要固定在中心,则停靠面板非常适合。
【讨论】:
在UniformGrid 面板上进行抢劫。
【讨论】: