c# - 快速流畅地滚动图像

标签 c# .net winforms

当使用滚动条在浏览器中滚动图像时 - 图像快速且平滑地滚动。另一方面,用 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/

相关文章:

c# - WPF MVVM 应用程序服务层中的 ObservableCollection

c# - 正则表达式将字符串中的日期与 where 子句匹配

.net - SignalR(带有自托管的Nancy)显示404进行协商?clientProtocol = 1.3

c# - 从后台线程在 UI 线程上打开表单

c# - 在没有管理员权限的情况下运行 WinForms 应用程序?

c# - 我们可以将以下 if 语句转换为单个开关吗?

C# 客户端 - Perl 服务器 - 文件路径区分大小写

c# - 如何对 List<T> 使用 BinarySearch

c# - 如何使用 LINQ 从字符串中删除字符

c# - 绘制 emf 抗锯齿