【发布时间】:2013-09-14 17:16:43
【问题描述】:
我有一个使用SizeToContent="WidthAndHeight" 的窗口,并且我有一个包含三行的列。行是这样定义的:
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
内容由上面每一行的另一个网格面板组成。这些面板中的每一个都包含一个标签和一个列表框。 ListBox 动态添加或删除其内容。因此,它可能只有一项,也可能有 100 项。
我的问题是:当我的应用程序启动时,上述三行的大小会根据其中的内容进行调整。所以它看起来很整洁。如果第一行在 ListBox 中只包含一个项目,它将调整它的大小以适合这些项目。另外两行(如果内容过多)会将剩余的空间分成两半,如果用户想要查看每一行的溢出,则它们的滚动条可见。但是,一旦我重新调整主窗口的大小,这三行将立即重新调整自己的大小,使每一行的高度完全相同。
我尝试在外部网格的行定义中使用Height="Auto";但是,这会将每一行的大小调整为精确地适合内容,从而导致它们溢出屏幕,而无需启用滚动条。
我已经尝试了所有我知道的设置(关键:知道),但我无法解决它。现在我摆脱了SizeToContent,这样就不会发生那个奇怪的错误,但是无论行中的内容量如何,行的大小都是相互成比例的......我希望它是另一种方式。我不希望每一行都有一个静态高度,而是让它们根据其中的内容量动态调整自己的大小,而不会离开屏幕。
有没有办法解决这个问题?
【问题讨论】:
标签: c# wpf listbox gridpanel sizetocontent