我有一个使用以下链接虚拟化的包装面板:
http://virtualwrappanel.codeplex.com/
我已经在上面实现了拖放......但是,当我向下拖动项目时,我正在使用 LineUp() 和 LineDown() 方法来向下移动换行面板。由于虚拟化,这种过渡看起来非常不稳定而且不好......在这种情况下是否可以实现平滑滚动?谢谢
我有一个使用以下链接虚拟化的包装面板:
http://virtualwrappanel.codeplex.com/
我已经在上面实现了拖放......但是,当我向下拖动项目时,我正在使用 LineUp() 和 LineDown() 方法来向下移动换行面板。由于虚拟化,这种过渡看起来非常不稳定而且不好......在这种情况下是否可以实现平滑滚动?谢谢
您正在虚拟化的项目很可能渲染起来非常昂贵,要么是因为复杂的可视化树,要么是因为生成它们所需的昂贵代码。尝试测试相同数量的项目,但显示非常简单,比如 a TextBlock
with Text="foobar"
。这应该为您顺利滚动 - 至少它对我有用。
因此,要调试您的效率问题,您可以查看 WPF 性能套件和 Visual Studio 性能分析器(或类似的第 3 方工具)。WPF 性能套件将缩小问题的一般范围(它是实际的渲染代码吗?还是 Dispatcher 被阻塞了?),如果恰好是问题。如果渲染是问题,降低视觉树的复杂性将解决问题。