我對Winforms和GDI +完全陌生,我來自WPF背景。使用下面的簡單代碼來繪製1000行,我注意到它並不像WPF那樣一次繪製線條。這是緩慢的,繪畫的過程實際上是顯而易見的。我在下面的代碼中丟失了什麼?在GDI中慢速繪製線條+
private void button1_Click(object sender, EventArgs e)
{
Graphics g;
g = CreateGraphics();
var pn = new Pen(Color.Wheat, 1);
var x = 0;
var y = 0;
var n = 0;
while (n < 1000)
{
x = x + 5;
if (x > 1200)
{
x = 0;
y = y + 15;
}
g.DrawLine(pn, x, y, x, y + 10);
n++;
}
}
覆蓋了的onDraw方法,這個方法裏面可以recieive畫布上,並繪製到它,只用一個手柄,據我所知。所以你的按鈕可以設置像計數器或標誌的東西,並調用無效,並在onDraw事件處理程序,然後你可以快速繪製。 – icbytes
我已經在WPF和WinForms中完成了一個簡單的測試,在WPF中需要36ms來生成上面的代碼,而在WinForms中只有10個,所以在某些時候您的端點出現了問題。 – woutervs
你用GDI +中的確切代碼做了嗎?我實際上正在看到畫線。 – Vahid