Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF ListView';s高度_Wpf_Listview_Wpf Controls_Height - Fatal编程技术网

WPF ListView';s高度

WPF ListView';s高度,wpf,listview,wpf-controls,height,Wpf,Listview,Wpf Controls,Height,我有一个网格,其中包含列表视图: <Grid > <Grid.RowDefinitions> <RowDefinition /> ... </Grid.RowDefinitions> <ListView Grid.Row="0"> <ListViewItem > ... </ListViewItem> ... </ListView> </Gr

我有一个
网格
,其中包含
列表视图

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

   ...

 </ListView>
</Grid>

...
...
...
而且
ListView
比它的所有项目都要高,它占用了所有可用的空间


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

如果不在
ListView
上设置
height
MinHeight
属性,则应自动执行此操作

编辑: 要解决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>

项目1
项目2
项目3
另一种可能的解决方案是在窗口上设置SizeToContent。

但是请注意,如果有多个父容器包装ListView,并且手动设置这些容器上的对齐或大小属性,则此解决方案可能无法按预期工作


您可以看一下这篇文章,了解更多关于xaml中布局的工作原理。

但事实并非如此。它占据了所有可用的位置。好吧,我想我理解你的问题是,ListViewItem的高度之和大于ListView的高度。如果你的情况正好相反。。。i、 e.ListViewItem高度之和小于ListView高度。这很可能是因为ListView会自动占用父控件上的所有可用空间。默认情况下,如果未指定水平和垂直对齐方式,ListView将尝试占用所有空间(即拉伸)。我将编辑我的答案,告诉你如何解决这个问题。