C# 能否在wrappanel wpf中通过虚拟化实现平滑滚动?

C# 能否在wrappanel wpf中通过虚拟化实现平滑滚动?,c#,wpf,C#,Wpf,我有一个使用以下链接虚拟化的包裹面板: 我已经在上面实现了拖放…但是,当我向下拖动项目时,我使用方法LineUp()和LineDown()向下移动包裹面板。由于虚拟化的原因,这种转换看起来很不稳定,不太好……在这种情况下,有可能实现平滑滚动吗? 感谢您正在虚拟化的项目很可能需要非常昂贵的渲染成本,这可能是因为复杂的可视化树,也可能是因为生成它们所需的昂贵代码。尝试测试相同数量的项目,但要使用非常简单的显示,例如使用Text=“foobar”的TextBlock。这对你来说应该是平稳的——至少对

我有一个使用以下链接虚拟化的包裹面板:

我已经在上面实现了拖放…但是,当我向下拖动项目时,我使用方法LineUp()和LineDown()向下移动包裹面板。由于虚拟化的原因,这种转换看起来很不稳定,不太好……在这种情况下,有可能实现平滑滚动吗?
感谢

您正在虚拟化的项目很可能需要非常昂贵的渲染成本,这可能是因为复杂的可视化树,也可能是因为生成它们所需的昂贵代码。尝试测试相同数量的项目,但要使用非常简单的显示,例如使用
Text=“foobar”
TextBlock
。这对你来说应该是平稳的——至少对我来说是这样


因此,要调试效率问题,可以查看WPF性能套件和VisualStudio性能分析器(或类似的第三方工具)。将缩小问题的一般范围(是实际的渲染代码?还是调度程序被阻塞了?),并且VS performance analyzer将帮助您在出现问题的情况下在自己的代码中找到优化的区域。如果渲染是一个问题,那么降低可视化树的复杂度将解决这个问题。

可能是因为复杂的可视化树或生成它们所需的昂贵代码,您正在虚拟化的项目渲染成本非常高。尝试测试相同数量的项目,但要使用非常简单的显示,例如使用
Text=“foobar”
TextBlock
。这对你来说应该是平稳的——至少对我来说是这样

因此,要调试效率问题,可以查看WPF性能套件和VisualStudio性能分析器(或类似的第三方工具)。将缩小问题的一般范围(是实际的渲染代码?还是调度程序被阻塞了?),并且VS performance analyzer将帮助您在出现问题的情况下在自己的代码中找到优化的区域。如果渲染是一个问题,那么降低视觉树的复杂性将解决这个问题