日期:2014-05-17  浏览次数:20924 次

C# 双缓冲 绘图,有滚动条时画面如何更新
双缓冲
BufferedGraphicsContext bgc=new BufferedGraphicsContext.Current;
BufferedGraphics bg;

bg=bgc.Allocate(frm.CreateGraphics(),rect);//rect 是需要绘制的图像大小

在frm.paint事件中
bg.Render(e.Graphics);

现在frm上需要绘制的图像大于frm的大小,出现了滚动条,拖动滚动条,frm上的图像不变,仍是原来的图像,请教如何使图像跟随滚动条?

------解决方案--------------------
滚动事件中要重新绘制,绘图的起始位置要跟着变才行,
你还可以在内存中new一个bitmap,然后绘制到上面,将bitmap作为背景图,这样滚动时你就不用处理了,但开始绘制时要知道最终的大小,一次性绘制完毕
------解决方案--------------------
显示多少绘多少!!!