项目中有实现简单“动画”的代码 - 幻灯片。有pictureBox作为内容单元,有两个按钮可以滑到下一个pictureBox,或者滑到上一个。此代码使用 winforms。
为了实现这个“幻灯片”,两个图片框的位置都会循环变化。但是滑到屏幕上的控件(它的起始位置在屏幕外)不能正确重绘。所以我们尝试将内容面板的刷新添加到循环中(如this.contentPanel.Refresh())。它工作得很好。但是当 QA 在非常慢的虚拟机上测试这个应用程序时,问题就出现了。由于循环中的 refsresh,此动画需要很长时间。
作为快速修复,我们重构了代码以在恒定时间内执行此动画。这么慢的机器可以同时为它制作动画,但不是那么流畅。
问题是,我们如何优化它?我们如何才能更优化地重绘这个控件?