我有一个Windows窗体项目,该动画设计了矩形的运动,但是所有动画都伴随着一些闪烁,这些闪烁主要来自绘制矩形的边界。我已经为该表单启用了双重缓冲,尽管这有助于解决问题。有什么我可以做的代码明智的修复它吗?下面是处理绘制矩形的代码片段。我遗漏了提供绘制矩形的代码,并用摘要代替了该代码,因为我认为这与我的问题无关。所有这些都通过一种方法来完成,该方法将传递其所绘制表单的实例(DrawForm),Graphics对象(g),Pen对象(pen)和Brush对象(brush)。
for(int i = 0; i < animation_frames; i++)
{
for(int b = 0; b < objects.Count; b++)
{
/*Summary: Checks what each object is doing for this frame. Populates a RectangleF array
called recs with rectangles corresponding to the objects' new positions.
*/
}
DrawForm.Refresh();
g.FillRectangles(brush, recs);
g.DrawRectangles(pen,recs);
System.Threading.Thread.Sleep(20);
}