C# 优化控件动画

C# 优化控件动画,c#,.net,winforms,C#,.net,Winforms,项目中有一些代码实现了简单的“动画”-幻灯片。有pictureBox作为内容单元,有两个按钮可滑动到下一个pictureBox或上一个。此代码使用winforms 要实现此“幻灯片”,两个图片框的位置会在循环中发生变化。但是,滑动到屏幕上的控件(其在屏幕外的起始位置)没有正确地重新绘制。因此,我们尝试将内容面板的刷新添加到循环中(如下面的.contentPanel.refresh())。而且效果很好。但当QAs在非常慢的VM上测试此应用程序时,出现了问题。由于循环中的refsresh,此动画花费

项目中有一些代码实现了简单的“动画”-幻灯片。有pictureBox作为内容单元,有两个按钮可滑动到下一个pictureBox或上一个。此代码使用winforms

要实现此“幻灯片”,两个图片框的位置会在循环中发生变化。但是,滑动到屏幕上的控件(其在屏幕外的起始位置)没有正确地重新绘制。因此,我们尝试将内容面板的刷新添加到循环中(如下面的.contentPanel.refresh())。而且效果很好。但当QAs在非常慢的VM上测试此应用程序时,出现了问题。由于循环中的refsresh,此动画花费了很长时间

作为quickfix,我们重构了代码以在恒定时间内执行此动画。所以速度慢的机器可以同时制作动画,但不是很流畅


问题是,我们如何优化这一点?我们如何重新绘制此控件才能使其更为优化?

没有任何迹象表明您尚未以可达到的最大速率绘制。考虑添加“我们有一个非常慢的VM”选项来关闭动画。PROBEM是只有重绘导致了性能上的差距。若我在屏幕上滑动当前的控件(所以它已经绘制好了,不需要重新绘制),那个么即使是这个速度慢的VM也可以。我希望有一种方法,例如,绘制第二个控件一次(在屏幕外),这样它就不需要重新绘制。我不确定是否有可能使其更快(当然也不可能使其“更优化”:。但是,您可以编写一个自定义控件,该控件将加载2个图像并适当地绘制它们