您好,我有一个绑定到集合的ListView。我将ListView的高度设置为自动以占用该区域中的所有空间。然而,在我将高度设置为自动后,没有滚动条。如果我给它一个高度,那么滚动条就会显示出来。
标记基本上像以下这样:
<Grid>
<StackPanel>
<Expander>
<DataGrid>
<Expander>
<ListView>
我有一种直觉,你的 ListView
位于一个允许它无限制垂直扩展的面板内。
例如,如果你将 ListView
放在 StackPanel
中,ListView
的高度可能会超过 StackPanel
的高度。对于 ListView
来说,它已经增加了自己的高度以显示所有项目,因此没有滚动条。
然而,如果你将 StackPanel
更改为 Grid
,其中控件会自动尝试适应该区域内,当 ListView
包含的项目超过其所能显示的项目时,ListView
将自动拥有滚动条。
这可能最简单地通过调整包含 ListView
的布局来解决。
StackPanel
中只有 2 个 Expanders
吗?StackPanel
是 Grid
中唯一的元素吗?你希望 ListView
只占用外部 Grid
中可用的空间吗?如果所有这些都是“是”,那么你可以使用 DockPanel
替代 StackPanel
。如果带有 ListView
的 Expander
是最后一个子元素,则它将填充剩余区域。 - Joel B Fant不要设置
<RowDefinition Height="auto"/>
设置:
<RowDefinition Height="1*"/>
Grid
的一个或多个*Row
的Height
属性?据我所知,在提到的所有元素中,Grid
的Row
是唯一接受“”符号表示法的元素。 - Tom如果没有需要滚动的内容,为什么要显示滚动条呢?
如果您想覆盖任何默认行为,您可以在ListBox上设置ScrollViewer.VerticalScrollBarVisibility="Visible"
。
ListView
位于哪种容器/面板中? - Joel B Fant