Re: [問題] 捲軸捲動時圖形重繪如何加快
※ 引述《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
推
08/31 10:57, , 1F
08/31 10:57, 1F
討論串 (同標題文章)
完整討論串 (本文為第 3 之 3 篇):
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章