iT邦幫忙

DAY 2
2

APP 開發好好玩系列 第 2

在 .NET 當中,繪製圖形時會遇到 PictureBox 的校能問題

  • 分享至 

  • xImage
  •  

在 .NET 的 PictureBox 當中,我們會用 OnPaint 與 Invalidate 繪製圖形,但是會有一些效能上的問題需要注意,如下
PictureBox 的 OnPaint 與 Invalidate
在 .NET 當中,有一種習慣的寫法是把繪製PictureBox當中圖形的所有程式碼寫在Paint所引發的函式當中,當我們需要重新繪製圖形的時候,就呼叫PictureBox.Invalidate就可以讓這張圖片失效,進而重新繪製。

若用以上的方法,如果你把PictureBox.Invalidate寫在Paint的Function當中,就會引發無限迴圈,一直重新繪製,如此一來會佔用掉非常多的CPU時間,並且讓程式執行的很不順。所以一般當然不會這樣做。可是今天我犯了一個錯誤,我把PictureBox.Image = img寫在Paint當中了,如此的程式碼也會引起無限迴圈。如果你有遇到CPU Loading飆升的問題,可以檢查一下是不是這個原因。

在Paint函式當中,只能夠使用e.Graphics所引用的方法,來幫你的PictureBox繪製圖片。如果是要把現成的img放進去,就得用g.DrawImage(img,new Point(0,0)這樣的寫法,就不會有問題了。


上一篇
在 iOS 與 Android 當中,如何計算兩組經緯度的距離
下一篇
AJAX 的原始型態
系列文
APP 開發好好玩27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
卡斯
iT邦研究生 1 級 ‧ 2013-09-24 23:54:52

沙發

年輕人...不要和老人家搶沙發啦~ XD

總裁 iT邦好手 1 級 ‧ 2013-09-25 09:37:14 檢舉

還好他不是和我搶....偷笑

鐵殼心 iT邦高手 1 級 ‧ 2013-09-25 10:03:33 檢舉

cdfu提到:
還好他不是和我搶....

舉手...我來開心

我要留言

立即登入留言