如果包含一项大于 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>
我的应用程序有问题,我的 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>