2011-10-31 59 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