【发布时间】:2010-09-07 08:35:59
【问题描述】:
如果您不指定它的高度,某些 WPF 控件(如 Button)似乎很乐意消耗其容器中的所有可用空间。
还有一些,比如我现在需要使用的那些,(多行)TextBox 和 ListBox 似乎更担心只占用适合其内容所需的空间,仅此而已。
如果你把这些家伙放在UniformGrid 的一个单元格中,它们会扩展以适应可用空间。但是,UniformGrid 实例并不适用于所有情况。如果您有一个网格,其中一些行设置为 * 高度以在其自身和其他 * 行之间划分高度怎么办?如果你有一个StackPanel,你有一个Label,一个List和一个Button,你怎么能让列表占据标签和按钮没有占用的所有空间?
我认为这确实是一个基本的布局要求,但我不知道如何让它们填充它们可以填充的空间(将它们放入 DockPanel 并将其设置为填充也不会似乎可以工作,因为DockPanel 只占用其子控件所需的空间。
如果你不得不使用Height、Width、MinHeight、MinWidth 等,那么可调整大小的 GUI 将非常糟糕。
您能否将您的Height 和Width 属性绑定到您占用的网格单元?还是有其他方法可以做到这一点?
【问题讨论】:
-
UniformGrid 太棒了,我的新默认 goto 标签。我喜欢 Stackpanels 的简单性(让我想起了 div),但 Uniform Grid 正是我需要的。
-
重新统一网格。重点是统一。似乎您无法调整列宽和行高。仅当每条内容的大小相同时才适用。我用一个 Grid 替换了我的 StackPanel,然后 Stretch 就按我的预期工作了。
-
This article 帮助我拉伸文本框。
标签: wpf user-interface layout