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将尝试占用所有空间(即拉伸)。我将编辑我的答案,告诉你如何解决这个问题。