在浏览器中使用滚动条滚动图像时-图像快速流畅地滚动。另一方面,使用Graphics.DrawImage进行紧密循环,每次迭代将位置的X坐标增加1-会返回慢动作。 (即使在创建Control 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();
}
}
}
最佳答案
从我的问题的答案这样的评论看来,浏览器使用的是Winforms无法使用的硬件加速。 (如果我错了,请随时纠正我。)