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

10

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

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

你如何设计你的数据输入表单?我目前在这两种方法中犹豫不决,也许我不知道有其他的选择?

编辑:Henk 说我应该定义“最佳”,我想我同意,所谓最佳是指易于维护、创建、对齐以及随着需求变化添加或删除字段的方法。

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


3
“最佳方法”需要标准。 - H H
3个回答

3

绝对是第一种方法!

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


我同意。当你决定稍后美化它,或者需要一个字段的第二部分时,StackPanels并不能提供你几乎所需的布局控制。只需确保保持选项卡顺序,并在布局时经常使用真实数据进行测试。 - djdanlib

1
我曾经使用过这两种方法,但实际上取决于你的表单将会是什么样子。如果你的布局非常简单,只需要标签和相应大小的字段,那么第一种方法效果很好。它可以让你创建两列非常对齐的表格。然而,如果你的字段大小和高度不同,并且想要更复杂的布局,则混合方法可能更好。如果你要做的事情比基本控件上的字段标记更复杂,你可能需要创建用户控件,而不仅仅是使用默认的控件。当以水平和垂直交错的方式布置字段时,很难保持网格布局,因为你必须拥有具有大量列和行的网格才能正确对齐字段和标签。这种方法虽然可行,但如果你想重新组织表单,就会变成噩梦。
根据你所写的内容,第一种方法似乎是最好的选择。如果现在很简单,将来变得更加复杂,也很容易进行更改。然而,如果你已经有了更复杂的布局,则纯网格布局方法可能不是最好的选择。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接