我在 WPF 中开发了一个用于制图的控件,但是在调整控件大小时出现了性能问题。由于我不知道如何使性能更好,所以我现在只是在增大时关闭了渲染,但这看起来不太好。所以我的问题是是否可以在调整大小期间将控件“冻结”为图像以使其看起来平滑。
编辑:该控件基本上由一个滚动查看器组成,其中包含一个自定义虚拟化面板。scrollviewer 只能水平滚动。滚动查看器中的虚拟化面板包含所有其他项目,例如曲线、标签、网格等。
这是一个很好的建议列表:
另外尝试:
ScrollViewer 上的 IsDeferredScrollingEnabled="true"。
仅当您有 ScrollViewer.CanContentScroll=true 时才启用 UI 虚拟化
WPF 中的 ListBox、VirtualizingStackPanel 和平滑滚动
允许基于像素的滚动并进行虚拟化的 hacky 解决方法:
带有 ListBox 的 WPF ListBox - UI 虚拟化和滚动
UI 虚拟化的一些细节:
这个答案显然为时已晚,但可能对未来的探索者有所帮助!
如果您想在繁忙的控件上平滑地调整内容的大小,则此答案可能无效。但是,如果您想在重新调整大小期间解决口吃问题,那么在重新调整大小开始之前执行此操作。
当重新调整大小完成时。
这对于控件来说效果很好,但是如果您调整窗口大小,它仍然会导致卡顿。