作者cole945 (躂躂..)
看板C_Sharp
标题Re: [问题] 卷轴卷动时图形重绘如何加快
时间Wed Aug 30 22:10:43 2006
※ 引述《Arton0306 (没有怎麽办)》之铭言:
所以你主要的问题应该是在绘图的动作占太多时间所导致的lag..
我有个方式你试试看合不合用 .__.a
一开始就先配好一个Bitmap ,
Bitmap bitmap = new Bitmap(....);
Graphics g;
g = Graphics.FromImage( bitmap );
然後把你要画的东西都画好,除非以後图有变动,再补绘(或重绘)bitmap
加一个event handler在 Panel的Paint内容如下:
private void panel1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawImage(
bitmap, /* 只绘上已绘好的 bitmap */
e.ClipRectangle, /* 只绘卷动後的无效区域 */
new Rectangle(
e.ClipRectangle.X - panel1.AutoScrollPosition.X,
e.ClipRectangle.Y - panel1.AutoScrollPosition.Y,
e.ClipRectangle.Width,
e.ClipRectangle.Height
), /* 算出无效区对应的原图位置 */
GraphicsUnit.Pixel);
}
这样应该就可以了~ 试试看吧 ^^'
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.138.145.145
1F:推 Arton0306:感谢! 08/31 10:57