WPF ListView高度

时间:2013-03-07 05:25:11

标签: wpf listview wpf-controls height

我的Grid包含ListView

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

   ...

 </ListView>
</Grid>

并且ListView比其所有项目更高,它占用了所有可用空间。

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

1 个答案:

答案 0 :(得分:2)

如果您未在Height上设置MinHeightListView属性,则会自动执行此操作。

修改 要解决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中工作的更多信息。