我正在一个需要绘图的项目中工作,我有一个问题。如何以毫米为单位绘制东西。我有这段代码,但结果似乎不准确。我用尺子在屏幕上测量了一下,大约是 38 毫米。这是代码:
e.Graphics.PageUnit = GraphicsUnit.Millimeter;
e.Graphics.DrawLine(Pens.Red, 10, 10, 50, 10);
请给我指导,谢谢。
为了能够以“真实世界”的单位绘制某些东西,您需要了解几件事:
一个简单的例子:
两台计算机在 Windows 中具有相同的分辨率和相同的 DPI 设置。
但是,一台计算机连接了 13 英寸显示器,另一台计算机连接了 27 英寸显示器。
这意味着较小显示器上的物理像素密度要高得多,即每毫米像素更多。
因此,一条 10 毫米长的线需要在小型显示器上包含大约两倍的像素数。
丹尼尔是对的,“最坏的情况”你必须获得桌面分辨率和屏幕(监视器)DPI并自己计算单位。
但在第一次去我会尝试使用 TransformPoints:http: //msdn.microsoft.com/en-us/library/k42sdzey.aspx