在我的应用程序中,我需要在屏幕底部显示一个列表框。列表框可以不显示(通过菜单条目),并且必须可以调整高度。我将它放在一个网格中并使用一个网格分析器来完成调整大小部分,它可以按预期工作。
我的问题是,如果之前没有手动调整大小,一旦日志开始出现在列表框中,此列表框不会显示滚动条,而是开始增长并占用更多空间。一旦我使用gridsplitter触发调整大小,一切都按预期工作。我该怎么做才能阻止这个?
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ContentControl Grid.Row="0"
Grid.Column="1" />
<GridSplitter Grid.Row="1"
Height="5"
HorizontalAlignment="Stretch"
Visibility="{Binding ShowLogWindow,
Converter={StaticResource Bool2Vis}}" />
<ListBox Grid.Row="2"
VerticalAlignment="Stretch"
ItemsSource="{Binding Toolbox.LogEntries}"
MinHeight="50"
Visibility="{Binding ShowLogWindow,
Converter={StaticResource Bool2Vis}}" />
</Grid>
答案 0 :(得分:2)
将第三个Height
(或RowDefinition
本身)的ListBox
设置为50或您想要的任何固定高度。
Auto
表示内容大小,这意味着最后一行的高度会随着ListBox
的增长而增长。这显然不是你想要的。