0

我有一个Grid包含ListView

<Grid >
 <Grid.RowDefinitions>
  <RowDefinition />
    ...
  </Grid.RowDefinitions>
  <ListView Grid.Row="0">
   <ListViewItem >
    ...
   </ListViewItem>

   ...

 </ListView>
</Grid>

并且ListView变得比所有物品都高,它占用了所有可用空间。

如何使它ListView与它所包含的所有东西一样高ListViewItems(即使它的高度等于它们的高度之和)?

4

1 回答 1

2

如果你没有HeightMinHeight你的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,并且您在这些容器上手动设置对齐或大小属性,则此解决方案可能无法按预期工作。

您可以查看此链接以了解有关布局如何在 xaml 中工作的更多信息。

于 2013-03-07T05:44:07.797 回答