带有 gridsplitter 的列表框会自行调整大小而不是显示滚动条
Listbox with gridsplitter resize itself instead of showing a scrollbar
在我的应用程序中,我需要在屏幕底部显示一个列表框。列表框可以不显示(通过菜单条目),并且必须可以调整高度。我将它放在一个网格中并使用 gridsplitter 来执行调整大小部分,这按预期工作。
我的问题是,如果之前没有手动调整大小,一旦日志开始出现在列表框中,这个列表框就不会显示滚动条,而是开始增长并占用更多 space。一旦我使用 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>
将第三个 RowDefinition
(或 ListBox
本身)的 Height
设置为 50 或您想要的任何固定高度。
Auto
表示size to content,也就是说最后一行的高度会随着ListBox
的增长而增长。这显然不是你想要的。
在我的应用程序中,我需要在屏幕底部显示一个列表框。列表框可以不显示(通过菜单条目),并且必须可以调整高度。我将它放在一个网格中并使用 gridsplitter 来执行调整大小部分,这按预期工作。
我的问题是,如果之前没有手动调整大小,一旦日志开始出现在列表框中,这个列表框就不会显示滚动条,而是开始增长并占用更多 space。一旦我使用 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>
将第三个 RowDefinition
(或 ListBox
本身)的 Height
设置为 50 或您想要的任何固定高度。
Auto
表示size to content,也就是说最后一行的高度会随着ListBox
的增长而增长。这显然不是你想要的。