gpt4 book ai didi

wpf - 列表框中的分组、虚拟化和滚动

转载 作者:行者123 更新时间:2023-12-04 00:32:45 25 4
gpt4 key购买 nike

使用以下代码 ListBox 在滚动期间跳转到下一组。由于一组显示的项目多于屏幕可以容纳的项目,因此用户永远不会看到该组的所有项目。由于我有很多项目,我需要虚拟化。

设置 CanContentScroll="False" 解决了这个问题,但随后虚拟化消失了,UI 挂起 20 秒。有解决办法吗?

 <ListBox  
VirtualizingStackPanel.IsVirtualizing="True"
VirtualizingStackPanel.VirtualizationMode="Recycling"
ScrollViewer.CanContentScroll="True">
<ListBox.GroupStyle>
<GroupStyle HidesIfEmpty="True">
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Expander IsExpanded="True">
<Expander.Header>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Type}" />
...
</StackPanel>
</Expander.Header>
<ItemsPresenter />

最佳答案

尝试使用 ScrollUnit=Pixel 属性来实现平滑滚动。默认值为 ScrollUnit=Item,这会导致组作为一个单元滚动。

<ListBox             
VirtualizingPanel.IsVirtualizing='True'
VirtualizingPanel.IsVirtualizingWhenGrouping='True'
VirtualizingPanel.ScrollUnit='Pixel'
/>

关于wpf - 列表框中的分组、虚拟化和滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27466257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com