WPF的虚拟加载的一些问题

  1. WPF-虚拟加载 ItemsControl虚拟加载的样式

     <Style x:Key="ItemsControlVirtualizedStyle"
        TargetType="ItemsControl">
     <Setter Property="VirtualizingStackPanel.IsVirtualizing"
             Value="True" />
     <Setter Property="ScrollViewer.CanContentScroll"
             Value="True" />
     <Setter Property="ItemsPanel">
         <Setter.Value>
             <ItemsPanelTemplate>
                 <VirtualizingStackPanel />
             </ItemsPanelTemplate>
         </Setter.Value>
     </Setter>
     <Setter Property="Template">
         <Setter.Value>
             <ControlTemplate TargetType="ItemsControl">
                 <Border BorderThickness="{TemplateBinding Border.BorderThickness}"
                         Padding="{TemplateBinding Control.Padding}"
                         BorderBrush="{TemplateBinding Border.BorderBrush}"
                         Background="{TemplateBinding Panel.Background}"
                         SnapsToDevicePixels="True">
                     <ScrollViewer Padding="{TemplateBinding Control.Padding}"
                                   Focusable="False">
                         <ItemsPresenter SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}" />
                     </ScrollViewer>
                 </Border>
             </ControlTemplate>
         </Setter.Value>
     </Setter>
    

    wpf的虚拟加载都是基于ScrollViewer来实行,只加载ScrollViewer显示的区域当滚动到新的区域都会重新来刷新数据,这样也要有一个具体的长度 才能虚拟化.

相配套的属性
VirtualizingStackPanel:虚拟面板
VirtualizingStackPanel.IsVirtualizing=true;
ScrollViewer.CanContentScroll=true;
并且需要有开启滚动条
暂时还没具体的处理出来-VirtualizingWrapPanel 虚拟化加载并且是自动换行的样式 网上的暂时有问题 还需要研究-待处理....

posted @ 2022-05-12 11:14  怕黑的孩纸  阅读(69)  评论(0编辑  收藏  举报