当使用滚动条在浏览器中滚动图像时 - 图像快速且平滑地滚动。另一方面,用 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 不可用的硬件加速。 (如果我错了,请随时纠正我。)
关于c# - 快速流畅地滚动图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30225167/