网上能找到很多关于集合虚拟化的实现操作,但是貌似我看到的好多都是只能比较僵硬地滚动的,不能比较平滑滚动,列表里面的项只是内容被替换,每个项的位置没有根据你滚动而改变位置,这就感觉比较难受,我在网上经过多次深度的捣鼓,发现了一些操作,需要设置的属性包括以下:
<Setter Property="ScrollViewer.CanContentScroll" Value="True" /> <Setter Property="ScrollViewer.PanningMode" Value="Both" /> <Setter Property="VirtualizingPanel.VirtualizationMode" Value="Recycling" /> <Setter Property="VirtualizingPanel.IsVirtualizing" Value="True" /> <Setter Property="VirtualizingPanel.ScrollUnit" Value="Pixel" />
重点其实在于一个属性: <Setter Property="VirtualizingPanel.ScrollUnit" Value="Pixel" /> ,这个除Pixel之外还有名为Item的选项:

对了忘了说这个属性直译过来叫滚动单元,如果设置为Item的话,那么应用虚拟化之后滚动状态就会不改变Item的位置只改变Item的内容那样改变,就像这样:

设置成Pixel就会好很多:

另外你还可以去HC获取带有滚动平滑动画的ScrollViewer,然后你将获得更舒服的滚动体验,就像酱紫:

浙公网安备 33010602011771号