wpf中大表单(50个元素左右)的问题

wpf中大表单(50个元素左右)的问题,wpf,wpf-controls,Wpf,Wpf Controls,我在wpf页面上得到了一张很大的表格。我把它放在一个网格上,但是所有的元素都把页面弄得乱七八糟。我想我应该将表单拆分成更小的用户控件,然后在页面上将其拼合为一个表单。这不太管用: 我可以将表单拆分为一个“向导式”页面,其中包含一个“下一步”按钮,该按钮单独处理每个用户控件,但我不希望将其拆分为多个页面,因为最终用户习惯于将所有控件都放在一个页面上。此外,数据的验证/存储实际上是一个巨大的操作,如果第一个页面/用户控件中出现问题,则很难提供反馈 那现在呢?我真的很想把所有的小元素直接放在一个大网格

我在wpf页面上得到了一张很大的表格。我把它放在一个网格上,但是所有的元素都把页面弄得乱七八糟。我想我应该将表单拆分成更小的用户控件,然后在页面上将其拼合为一个表单。这不太管用:

我可以将表单拆分为一个“向导式”页面,其中包含一个“下一步”按钮,该按钮单独处理每个用户控件,但我不希望将其拆分为多个页面,因为最终用户习惯于将所有控件都放在一个页面上。此外,数据的验证/存储实际上是一个巨大的操作,如果第一个页面/用户控件中出现问题,则很难提供反馈

那现在呢?我真的很想把所有的小元素直接放在一个大网格中。我只是觉得它错了——这将是一场维护噩梦——我甚至开始想‘我希望xaml中有某种#区域标记’——这意味着我知道我错了;)


我能做些什么?

我强烈建议使用嵌套的容器控件,比如在其他网格中使用网格(或其他面板),在更多网格中使用其他网格等

通常会有多个嵌套级别,从而将复杂布局分层拆分为多个不太复杂的子布局。这使得您的布局比一个大容器要简单得多,因为它试图完成所有工作(请参阅您失败的ShardSizeScope方法)


一旦创建了一个合理的容器层次结构,就可以轻松地使用Visual Studio XAML编辑器的代码折叠功能来跟踪所有XAML。

当我有很多控件的表单时,我通常做的是将它们排列在GroupBox或TabItems中。但是如何防止页面膨胀?你认为我还是应该创建很多用户控件(每个都有自己的网格)并将它们放在网格中的页面上?我不是也会遇到同样的问题吗?为什么是用户控制?只需在一个面板中分组几个元素,在另一个面板中分组几个其他元素,依此类推。然后将这些面板再次分组到其他面板中,从而创建面板的层次结构。你说腹胀是什么意思?我同意Clemens的观点,我的主应用程序包含大约2000个控件,但是分组在不同的面板中,不难维护。我相信你是对的,我只是需要理解。这些面板是做什么用的?我的意思是,如果我嵌套网格,那么除非我调整网格的大小,否则单元对齐将不起作用。我可能不会在面板外垂直对齐,但每一行都应该对齐,即使是在不同的面板/网格之间也应该对齐。也许你应该提供一个草图或屏幕截图,说明你将要实现的目标。如果它只是一个10行x 5列的网格中的50个控件,那么我不理解这个问题。