只是想知道最佳做法或代碼效率,我有這段代碼:用C#繪圖的代碼效率?
只需注意:我正在使用.Net Compact Framework。
protected override void OnPaint(PaintEventArgs e)
{
if (BmpScreen == null)
{
BmpScreen = new Bitmap(ClientRectangle.Width, ClientRectangle.Height);
}
using (Graphics gBmpScreen = Graphics.FromImage(BmpScreen))
{
// some drawing using gBmpScreen
}
// finally
e.Graphics.DrawImage(BmpScreen, 0, 0);
}
在這段代碼在Paint
方法我創建一個Graphics
對象每次
我的問題是它更好地做這樣或者是更好地創建圖形對象只有一次在一開始的時候 ?
'PaintEventArgs'已通過[圖形屬性](http://msdn.microsoft.com/zh-cn/library/system.windows.forms.painteventargs.graphics.aspx)爲您提供'圖形'對象。你爲什麼不能使用已經創建並交給你的那個? – vcsjones 2012-08-02 13:33:53
答案應該相當明顯,反覆繪製相同的位圖通常效率不高。如果您不重複繪製相同的東西,則不應使用位圖,而應使用DoubleBuffered屬性並繪製到e.Graphics。 – 2012-08-02 13:37:01
我正在使用.Net Compact Framework ... – 2012-08-02 13:41:25