在浏览器中使用滚动条滚动图像时-图像快速流畅地滚动。另一方面,使用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无法使用的硬件加速。 (如果我错了,请随时纠正我。)

10-06 12:04