我在XAML中创建了一个带有2列和3行的网格,其中每一行的最后一行应该是其余部分的两倍:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="2*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="2*"/>
</Grid.RowDefinitions>
然后我将包含ListView的ScrollViewer添加到网格中,位于最大的单元格中:
<ScrollViewer Grid.Row="2" Grid.Column="1">
<ListView x:Name="OutputListView" >
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
</ScrollViewer>
</Grid>
ListView正确显示项目,但尽管它位于大单元格中,但它只有一个小单元格的高度,因此不会填满整个单元格(令人惊讶的是,宽度与单元格大小相匹配)。
如果我在单元格中放置一个TextBox,它会完全填充它,所以我的网格似乎没问题。
任何想法,我如何让ListView使用单元格的整个高度?
编辑: taekahn的评论是正确的提示。这是我的工作版本:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="2*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="2*"/>
</Grid.RowDefinitions>
<ListView x:Name="OutputListView" ScrollViewer.VerticalScrollMode="Enabled" ScrollViewer.VerticalScrollBarVisibility="Visible">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
</Grid>
答案 0 :(得分:1)
运行代码时,ScrollViewer
和ListView
会占用我机器上的整个单元格。
我在发布时代码并排,并将其他单元格的背景颜色进行比较。