如果包含一项大于 ListView 本身,WPF Scrollviewer 将不会显示在 ListView 中

WPF Scrollviewer won't show in ListView if contains one item bigger then ListView itself

我的应用程序有问题,我的 ListView 带有动态项。项目可能具有可变高度。如果有一个item并且它的高度大于整个ListView的高度,ScrollViewer将不会显示。

问题可以在以下示例中得到简化:

<Window x:Class="WpfApplication15.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow"
        Width="300"
        Height="200">
    <ListView Height="100" Margin="10">
        <ListViewItem Height="150" Background="LimeGreen">
            <TextBlock Text="ITEM" />
        </ListViewItem>
    </ListView>
</Window>

这是为什么?我能用它做什么吗?

尝试将 VirtualizingPanel.ScrollUnit 附加 属性 设置为 Pixel:

<ListView Height="100" Margin="10" VirtualizingPanel.ScrollUnit="Pixel">
    <ListViewItem Height="150" Background="LimeGreen">
        <TextBlock Text="ITEM" />
    </ListViewItem>
</ListView>