在WPF中构建数据输入表单的最佳方法?

时间:2011-04-11 19:16:32

标签: wpf forms grid stackpanel

在构建用于数据输入的WPF表单时(例如,一堆文本框和组合框旁边的一堆标签)我看到了两种方法:

  • 创建一个主网格,将其划分为两列,并为每个字段添加Height="auto"行,为页眉和页脚添加两行(和提交按钮),每个标签和文本框都有自己的行。
  • 另一种方法是创建一个主堆栈面板,并在其中为每对标签文本框创建一个水平堆栈面板。

您如何设计数据输入表格?我目前在两种方法之间徘徊,也许还有一种我不知道的替代方案?

编辑:Henk说我应该定义最好的,我认为我同意,最好是我最容易维护,创建,对齐,添加或删除字段,因为需求变化。

到目前为止,网格更好的唯一标准是易于对齐。

3 个答案:

答案 0 :(得分:3)

肯定是第一种方法!

它很好地对齐,特别是使用SharedSizeGroup,因此您可以在不同的Groupbox中具有相同的对齐方式。

答案 1 :(得分:1)

我已经使用了两者,这实际上取决于你的表格看起来如何。如果你有一个非常简单的布局,你将有标签和大小相同的相应字段,那么你的第一种方法效果很好。它允许您创建两个排列得非常好的列。但是,如果您的字段具有不同的宽度和高度,并且您希望布局更复杂,那么混合方法可能是最佳的。如果您正在做的事情比仅仅标记基本控件上的字段更复杂,您可能想要创建用户控件而不是仅仅使用开箱即用的控件。当以水平和垂直锯齿状方式布置字段时,很难保持网格布局,因为必须结束具有大量列和行的网格。字段和标签必须跨越列和行以使对齐正确。这是有效的,但如果您想重新组织表单,这是一场噩梦。

对于你所写的内容,听起来第一种方法是最好的。如果它现在简单,将来某些点变得更加复杂,它很容易改变。但是,如果你有一个更复杂的布局,那么基于纯网格的方法可能不是最好的。

答案 2 :(得分:0)

免责声明:我将在我的博客中对我自己公司的产品几乎没有提及,这样可以在维护表格时提供比较和挑战。

网格和StackPanel都有维护噩梦所以我们继续创建表单布局的方法,我在这个链接上概述了我们的方法,

http://akashkava.com/blog/296/advanced-data-form-with-ui-atoms-on-wpf-and-silverlight/