C# 页面单元问题

C# 页面单元问题,c#,gdi+,C#,Gdi+,我正试图使用GDI+原语在C#中绘制一些2D图形,但我遇到了一些问题: protected override void OnPaint( PaintEventArgs e ) { Graphics dc = e.Graphics; dc.PageUnit = GraphicsUnit.Millimiter; dc.DrawLine( 0f, 50f, 100f, 50f ); base.OnPaint( e ); } 这段代码应该画一条10厘米的线,但我总是画一

我正试图使用GDI+原语在C#中绘制一些2D图形,但我遇到了一些问题:

protected override void OnPaint( PaintEventArgs e )
{
    Graphics dc = e.Graphics;
    dc.PageUnit = GraphicsUnit.Millimiter;
    dc.DrawLine( 0f, 50f, 100f, 50f );
    base.OnPaint( e );
}
这段代码应该画一条10厘米的线,但我总是画一条10.6/7厘米的线。如果我以像素为单位,试着画一个96像素(应该是1英寸的线),我会得到一条1.1英寸的线。 是我做错了什么,还是我无法修复? 各种信息:我使用VS2010 SP1和VS2005和MFC C++如果我画一条5cm的线,我得到一条5cm的线。
提前谢谢。

您是用尺子测量的吗?监视DPI永远都不准确。实际上,在我的MFC C++程序中,我也使用了一个MM单元,我有了更精确的结果,这就是为什么我要问…