【问题标题】:Best method to build data entry forms in WPF?在 WPF 中构建数据输入表单的最佳方法?
【发布时间】:2011-04-11 19:16:32
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • “最佳方法”需要标准。

标签: wpf forms grid stackpanel


【解决方案1】:

绝对是第一种方法!

对齐很好,尤其是在使用SharedSizeGroup 时,因此您可以在不同的 Groupbox 中进行相同的对齐。

【讨论】:

  • 我同意。当您决定稍后让它看起来不错时,或者如果您需要在某个地方为某个字段添加第二部分时,StackPanels 几乎不会为您提供您可能需要的布局控制量。只需确保保持标签顺序,并确保在布局时经常使用真实数据对其进行测试。
【解决方案2】:

我都使用了这两种方法,这实际上取决于您的表单的外观。如果您有一个非常简单的布局,其中您将拥有大约相同大小的标签和相应的字段,那么您的第一种方法效果很好。它使您可以创建两个排列得很好的列。但是,如果您的字段具有不同的尺寸和高度,并且您希望布局更复杂,那么混合方法可能是最好的。如果您正在做的不仅仅是在基本控件上标记字段更复杂,您可能想要创建用户控件,而不是仅仅使用开箱即用的东西。当以水平和垂直锯齿状方式布置字段时,很难保持网格布局,因为您必须最终拥有一个包含大量列和行的网格。字段和标签必须跨越列和行才能正确对齐。这可行,但如果您想重新组织表单,那就是一场噩梦。

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

【讨论】:

    【解决方案3】:

    免责声明:我将在我的博客中介绍我自己公司的产品,这些产品在维护表单方面提供了比较和挑战。

    Grid 和 StackPanel 都有维护噩梦,因此我们采用了不同的方法来创建表单布局,我在此链接上概述了我们的方法,

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-11
      • 1970-01-01
      • 1970-01-01
      • 2018-07-14
      • 1970-01-01
      相关资源
      最近更新 更多