首页 > 其他分享 >WPF ItemsControl 卡顿 数据量大 虚拟化 优化

WPF ItemsControl 卡顿 数据量大 虚拟化 优化

时间:2023-10-24 10:24:03浏览次数:37  
标签:虚拟化 ItemsControl 数据量 WPF 优化 卡顿

<ItemsControl ItemsSource="{Binding MemberInfos}"
             VirtualizingStackPanel.IsVirtualizing="True"    VirtualizingStackPanel.VirtualizationMode="Recycling"        VirtualizingPanel.CacheLength="50">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <VirtualizingStackPanel></VirtualizingStackPanel>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <ItemsControl.Template>
                <ControlTemplate TargetType="ItemsControl">
                    <ScrollViewer VerticalScrollBarVisibility="Auto" CanContentScroll="True">
                        <ItemsPresenter></ItemsPresenter>
                        <ScrollViewer.Resources>
                            <Style TargetType="ScrollBar">
                                <Setter Property="Width" Value="6"/>
                                <Setter Property="MinWidth" Value="6"/>
                                <Setter Property="Template">
                                    <Setter.Value>
                                        <ControlTemplate TargetType="ScrollBar">
                                            <Grid>
                                                <Rectangle Width="{TemplateBinding Width}" Fill="White"/>
                                                <Track x:Name="PART_Track" IsDirectionReversed="True">
                                                    <Track.DecreaseRepeatButton>
                                                        <RepeatButton Command="ScrollBar.LineUpCommand" Visibility="Collapsed"/>
                                                    </Track.DecreaseRepeatButton>
                                                    <Track.IncreaseRepeatButton>
                                                        <RepeatButton Command="ScrollBar.LineDownCommand" Visibility="Collapsed"/>
                                                    </Track.IncreaseRepeatButton>
                                                    <Track.Thumb>
                                                        <Thumb Background="#D3D7DD"/>
                                                    </Track.Thumb>
                                                </Track>
                                            </Grid>
                                        </ControlTemplate>
                                    </Setter.Value>
                                </Setter>
                            </Style>
                        </ScrollViewer.Resources>
                    </ScrollViewer>
                </ControlTemplate>
            </ItemsControl.Template>
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <local:MembersListItem/>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>

  

标签:虚拟化,ItemsControl,数据量,WPF,优化,卡顿
From: https://www.cnblogs.com/HansZimmer/p/17784118.html

相关文章

  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(12) -- 使用
    1、代码生成工具Database2Sharp生成WPF界面代码WPF应用端的基础接口,和Winform端、Vue3+ElementPlus前端一样,都是调用SqlSugar开发框架中的相关业务接口,如果对我们的SqlSugar框架还有疑问,可以参考我的随笔集《SqlSugar开发框架》进行系列的学习或了解。要了解项目的快速生成,需要......
  • WPF 已知问题 RadioButton 指定 GroupName 后关闭窗口可能导致无法选中
    本文记录一个WPF已知问题,当WPF的RadioButton指定GroupName且将IsChecked状态绑定到ViewModel上,将包含以上控件的代码的窗口显示两个,接着关闭其中一个。此时可以看到依然开着的窗口的RadioButton控件无法正确在用户界面上点击选中此问题已经报告给WPF官方,请看htt......
  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(11) -- 下拉
    在我们开发的前端项目中,往往为了方便,都需对一些控件进行自定义的处理,以便实现快速的数据绑定以及便捷的使用,本篇随笔介绍通过抽取常见字典列表,实现通用的字典类型绑定;以及通过自定义控件的属性处理,实现系统字典内容的快捷绑定的操作。1、下拉列表的数据绑定在我们创建下拉列表的......
  • WPF中资源URL解读
    引言资源(Resources)在WPF(WindowsPresentationFoundation)中扮演着非常重要的角色,它们提供了一种灵活和高效的方式来管理和使用图像、样式、模板等。资源URL(ResourceURL)则是资源管理中的一个关键概念。本文将深入解读WPF中资源URL的概念,类型,以及如何高效地使用它们。1.资源与......
  • WPF触发器(Triggers):介绍与用法实例
    引言WindowsPresentationFoundation(WPF)提供了一个丰富和灵活的图形渲染框架,触发器(Triggers)是其中一个重要的功能。触发器能够用来控制或改变UI元素的属性、样式、甚至行为。在这篇博客文章中,我们将详细介绍WPF中触发器的种类、用法,并通过一些实际例子进行讲解。1.触发器的种......
  • WPF和WinForm的区别是什么
    wpf和winform的区别:1、WPF是微软推出取代winform的产品,能分离界面设计人员与开发人员,而WinForm创建丰富的基于Windows的应用程序;2、WPF底层使用的DirectX,winform底层使用的是GDI+。WPF,即windowspresentationfoundation,windows呈现基础,属于.netframework3.0,是微软推出取......
  • WinForm与WPF的异同
    WinForm和WPF都是微软推出的桌面应用程序开发框架,很多人不知道该如何选择,今天我们一起来盘点下两者的异同点。01设计理念不同WinForm是2001年推出的界面应用开发框架,采用的是窗体和控件模型,以事件驱动的开发模式,并且提供了丰富控件库,方便开发者开发应用程序。WPF是2006年推出......
  • DevExpress WPF Pivot Grid组件,可轻松实现多维数据分析!(二)
    在上文中(点击这里回顾>>)我们主要为大家介绍了DevExpressWPF PivotGrid组件的超快速枢轴分析功能、Microsoft分析服务等,本文将继续介绍图表透视数据的处理、MVVM支持等。欢迎持续关注我们,探索更多新功能哦~P.S:DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需......
  • WPF TextBox按回车键执行
    如果界面上只有一个要执行的命令时,可以直接把某个Button的IsDefault设置为True就可以。如果界面上有多个不同的执行命令的话,可以用下面的InputBindings,不同的输入框绑定不同的Command即可。<TextBoxText="{BindingProgressName,UpdateSourceTrigger=PropertyChanged}"S......
  • WPF绘图(二):绘制图形
    WPF绘制图形有三种方式:使用FrameworkElement的派生类使用图元转换器绘制几何图形使用DrawingContext绘制1. 使用FrameworkElement派生类FrameworkElement类继承自UIElement类,意味它的派生类,都是UI元素,可以直接显示在界面上中。例如Shape的子类,Control的子类等。这是最简单......