我的Grid
包含ListView
:
<Grid >
<Grid.RowDefinitions>
<RowDefinition />
...
</Grid.RowDefinitions>
<ListView Grid.Row="0">
<ListViewItem >
...
</ListViewItem>
...
</ListView>
</Grid>
并且ListView
比其所有项目更高,它占用了所有可用空间。
如何使ListView
与它所包含的ListViewItems
完全一样高(即使它的高度等于它们的高度之和)?
答案 0 :(得分:2)
如果您未在Height
上设置MinHeight
或ListView
属性,则会自动执行此操作。
修改强> 要解决ListView占用所有可用空间的情况,可以设置水平和垂直对齐。我在我的例子中使用了“中心”设置,但“左”或“右”也有效。
<Grid>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<ListView Grid.Row="0" BorderThickness="2" HorizontalAlignment="Center" VerticalAlignment="Center">
<ListViewItem>Item 1</ListViewItem>
<ListViewItem>Item 2</ListViewItem>
<ListViewItem>Item 3</ListViewItem>
</ListView>
</Grid>
另一种可能的解决方案是在窗口上设置SizeToContent。
但请注意,如果您有多个父容器包装ListView,并且您在这些容器上手动设置对齐或大小属性,则此解决方案可能无法按预期工作。
您可以查看此link以了解有关布局如何在xaml中工作的更多信息。