2011-10-31 79 views
2
private void Form1_Paint(object sender, PaintEventArgs e) 
{ 
    Pen p = new Pen(Brushes.Black, 1); 
    e.Graphics.DrawRectangle(p, 3, 3, 89, 30); 
} 

爲什麼此代碼會生成一個90px寬度/ 31px高度框?即比請求更大的一個像素。 順便說一句:FillRectangle工作正常。c#/ 2D圖形/繪製矩形大小beheviour

+1

這是GDI +臭名昭着的錯誤。在試圖解決它一個星期後,我在2001年完全無奈地放棄了它。當你需要翻譯/重新調整時謀殺。 –

回答

0

我想這是因爲命令定義了矩形的內部大小並在其周圍繪製邊框。

+4

根據你的推理,它應該是+ 2px insted。 (每邊1px),整個「定義矩形」保持原樣。 – user1022738

+0

的確,我沒有想到這一點。 – NickLH