- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
几乎没有关于设置影响的信息;
VirtualizingStackPanel.IsVirtualizing="True"
和
EnableRowVirtualization="True" EnableColumnVirtualization="True".
谁能解释一下区别是什么?
此外,作为额外的奖励,任何人都可以澄清 EnableRowVirtualization 和 EnableColumnVirtualization 是否真的在 3.5 网格上执行任何操作,因为 MSDN 文档仅将这些属性列回 4.0,但它们肯定存在于 3.5 中?
谢谢。
最佳答案
IsVirtualizing
和 EnableRowVirtualization
/EnableColumnVirtualization
的操作原理相同,即项目仅在需要时可视化,容器可重复使用.
本质上,Panel
(或 Grid
)跟踪可见内容,如果更改,它会使用内部类 'ItemContainerGenerator'
,调整和构建新项目 ( https://learn.microsoft.com/en-us/dotnet/api/system.windows.controls.itemcontainergenerator )。
两者的动机是容器仅按需生成,从而节省内存并提高性能。
至于为什么有两个:Panel
被设计成只在一个方向上延伸,水平或垂直;所以他们为它实现了一个附加属性。另一方面,Grid
在两个维度上扩展,因此他们为每个维度实现了一个属性。
另一个区别是学术上的:IsVirtualizing
是附加属性,而 Grid
的对应项是 native 属性。不知道他们为什么选择这种差异......
相关链接是https://learn.microsoft.com/en-us/dotnet/api/system.windows.controls.datagrid.enablerowvirtualization和 https://learn.microsoft.com/en-us/dotnet/api/system.windows.controls.virtualizingstackpanel.isvirtualizing
关于c# - WPF DataGrid 的 EnableRowVirtualization 和 VirtualizingStackPanel.IsVirtualizing 属性之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18976856/
几乎没有关于设置影响的信息; VirtualizingStackPanel.IsVirtualizing="True" 和 EnableRowVirtualization="True" EnableC
我是一名优秀的程序员,十分优秀!