当使用滚动条在浏览器中滚动图像时,图像会快速而平稳地滚动。另一方面,使用Graphics.DrawImage创建一个紧密的循环,每次迭代将位置的X坐标增加1 - 返回缓慢的运动。(即使在使控件
如何像浏览器一样获得快速渲染?
DoubleBuffered
后,它也有些抖动。)如何像浏览器一样获得快速渲染?
void DoNow()
{
Rectangle rec1 = new Rectangle(Point.Empty, panel1.BackgroundImage.Size);
Rectangle rec2 = new Rectangle(Point.Empty, panel1.BackgroundImage.Size);
using (Graphics g = Graphics.FromImage(panel1.BackgroundImage))
{
for (int i = 0; i < 100; i++)
{
rec2.Location = new Point(rec2.Location.X + 1, rec2.Location.Y);
g.DrawImage(image, rec1, rec2, GraphicsUnit.Pixel);
panel1.Refresh();
}
}
}
Graphics
对象吗?你不应该这样做,它应该通过Paint
事件参数提供给你。 - Anthony