Re: [問題] 捲軸捲動時圖形重繪如何加快

看板C_Sharp (C#)作者 (躂躂..)時間19年前 (2006/08/30 21:59), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《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
文章代碼(AID): #14zPcn_i (C_Sharp)
文章代碼(AID): #14zPcn_i (C_Sharp)