WPF 列表开启虚拟化的方式

简介: 原文:WPF 列表开启虚拟化的方式正确开启虚拟化的方式 列表如ListBox,ListView,TreeView,GridView等,开启虚拟化 ScrollViewer设置CanContentScroll=True 直接在模板中,设置CanContentScroll="True" 如模板中未设置CanContentScroll属性,可以在列表添加属性ScrollViewer.CanContentScroll="True"。
原文: WPF 列表开启虚拟化的方式

正确开启虚拟化的方式

列表如ListBox,ListView,TreeView,GridView等,开启虚拟化

  1. ScrollViewer设置CanContentScroll=True
    • 直接在模板中,设置CanContentScroll="True"
    • 如模板中未设置CanContentScroll属性,可以在列表添加属性ScrollViewer.CanContentScroll="True"。
    • 注意:如果在模板中设置CanContentScroll="False",然后在列表中设置附加属性ScrollViewer.CanContentScroll="True",结果是无法设置成功的!究其原因,是附加属性无法更改原本已经设置了的属性值。
  2. VirtualizingPanel.IsVirtualizing="True" 

其它无法开启虚拟化的原因

  • 列表样式中,设置了OverridesDefaultStyle=“True”。---覆盖了默认样式
  • 列表模板ControlTemplate中,ItemsPresenter之上没有ScrollViewer这一容器

虚拟化其它注意点

  • 滚动单元设置。VirtualizingPanel.ScrollUnit="Pixel" 像素滚动,比VirtualizingPanel.ScrollUnit="Item"物理单元滚动,列表的滚动范围更小。
  • VirtualizationMode创建可见项的项容器。VirtualizingStackPanel.VirtualizationMode="Recycling",列表绑定大数据时,显示的速度和流畅性,稍微比VirtualizationMode="Standard"快那么一点。

虚拟化滚动介绍,请见我的另一博客:WPF 列表虚拟化时的滚动方式

     

关键字:虚拟化

目录
相关文章
|
7月前
|
缓存 C# 虚拟化
WPF列表性能提高技术
WPF数据绑定系统不仅需要绑定功能,还需要能够处理大量数据而不会降低显示速度和消耗大量内存,WPF提供了相关的控件以提高性能,所有继承自`ItemsControl`的控件都支持该技术。
|
C# 虚拟化 索引
【WPF】UI虚拟化之------自定义VirtualizingWrapPanel
原文:【WPF】UI虚拟化之------自定义VirtualizingWrapPanel 前言 前几天QA报了一个关于OOM的bug,在排查的过程中发现,ListBox控件中被塞入了过多的Item,而ListBox又定义了两种样式的ItemsPanelTemplate。
2035 0
WPF 获取列表中控件的同时,选中其所在行
WPF 获取列表中控件的同时,选中其所在行
|
API C# Windows
WPF 4 开发Windows 7 跳转列表(JumpList)
原文:WPF 4 开发Windows 7 跳转列表(JumpList)      在之前写过的《Windows 7 任务栏开发系列》中我们通过Visual Studio 2008 借助微软提供的Windows API Code Pack 对应用程序的任务栏进行开发,即将到来的Visual Studio 2010 为我们提供了更方便的开发方式,新版本的WPF 4 只需要通过XAML 代码即可实现Windows 7 任务栏的特性。
904 0
|
C# 虚拟化 自然语言处理
WPF中ItemsControl应用虚拟化时找到子元素的方法
原文:WPF中ItemsControl应用虚拟化时找到子元素的方法  wpf的虚拟化技术会使UI的控件只初始化看的到的子元素, 而不是所有子元素都被初始化,这样会提高UI性能。
1852 0
|
C# 虚拟化 缓存
WPF 列表虚拟化时的滚动方式
原文:WPF 列表虚拟化时的滚动方式 ListBox的滚动方式 分为像素滚动和列表项滚动 通过ListBox的附加属性ScrollViewer.CanContentScroll来设置。因此ListBox的默认模板中,含有ScrollViewer,ScrollViewer下存放列表内容  而CanContentScroll,true支持逻辑单元(Item),false支持物理单元(像素)。
1225 0
|
机器学习/深度学习 Linux KVM
Debian11安装KVM虚拟化并安装Centos
grep --color --perl-regexp 'vmx | svm' /proc/cpuinfo 首先检查其是否支持虚拟化. 分别用以下条命令查看
1127 0
Debian11安装KVM虚拟化并安装Centos
|
机器学习/深度学习 存储 Linux
CentOS 7 部署 KVM 虚拟化
CentOS 7 部署 KVM 虚拟化
641 0
|
11月前
|
存储 监控 网络安全
【KVM虚拟化】· 虚拟机的冷迁移和热迁移
【KVM虚拟化】· 虚拟机的冷迁移和热迁移
882 0
|
11月前
|
KVM 虚拟化 Windows
【KVM虚拟化】· KVM中的网络
【KVM虚拟化】· KVM中的网络
202 0

相关课程

更多