wpf - WPF Wrap 面板以何种方式较慢,我们需要虚拟 wrap 面板

标签 wpf wrappanel

我听到很多关于 wrap 面板加载速度较慢的消息,因此我们需要一个虚拟化面板。

有人可以给我一个小的环绕面板示例,它可以证明加载速度较慢等它需要一个虚拟面板。

我设置了一个环绕面板作为列表框的面板控件,并在其中添加了10000个字符串对象,这不是问题。我确信我的示例很愚蠢,也许我必须编写一个业务对象并创建一个更大的数据模板才能看到这个问题的实际情况。

请给我看一个样本,证明没有虚拟化的包裹面板速度较慢。

谢谢。

最佳答案

我认为性能问题主要取决于树中可视对象的数量。

默认的 ListBoxItem 模板包含少量元素(我认为是边框和文本块)。如果您有一个创建复杂可视化的模板,假设每个项目有 100 个视觉元素,您将获得相当多的视觉效果,具体取决于您的项目数量。

这就是普通面板在加载时速度较慢的原因,因为它必须在启动时创建所有对象,而虚拟化版本只为可见项目创建视觉效果并处理不再显示的视觉效果。

此外,这也会影响内存使用

关于wpf - WPF Wrap 面板以何种方式较慢,我们需要虚拟 wrap 面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/847370/

相关文章:

wpf - 如何在VB.NET/WPF应用程序中拥有一个全局字典来保存来自不同窗口的数据?

wpf - 绑定(bind)到静态属性

silverlight - 在 Silverlight 的 ListBox 中使用 WrapPanel

visual-studio-2010 - 如何让 Silverlight 4 Tools 在 Web Developer 2010 Express 中工作?

wpf - 具有覆盖的 OnVisualChildrenChanged 的​​自定义 WPF WrapPanel 将无法按预期工作

c# - 如何从 .cs 文件更改 WPF 菜单项中的文本?

c# - WPF 位图图像异常 "The image data generated an overflow during processing"

c# - WPF:DataContext 设置前的转换器默认值

c# - WPF WrapPanel 折叠顺序