0

我正在一个需要绘图的项目中工作,我有一个问题。如何以毫米为单位绘制东西。我有这段代码,但结果似乎不准确。我用尺子在屏幕上测量了一下,大约是 38 毫米。这是代码:

e.Graphics.PageUnit = GraphicsUnit.Millimeter;
e.Graphics.DrawLine(Pens.Red, 10, 10, 50, 10);

请给我指导,谢谢。

4

2 回答 2

0

为了能够以“真实世界”的单位绘制某些东西,您需要了解几件事:

  • 使用的分辨率
  • 附加显示器的物理DPI(隐含包含物理屏幕尺寸的知识)

一个简单的例子:

两台计算机在 Windows 中具有相同的分辨率和相同的 DPI 设置。
但是,一台计算机连接了 13 英寸显示器,另一台计算机连接了 27 英寸显示器。
这意味着较小显示器上的物理像素密度要高得多,即每毫米像素更多。

因此,一条 10 毫米长的线需要在小型显示器上包含大约两倍的像素数。

于 2013-04-23T09:04:51.453 回答
0

丹尼尔是对的,“最坏的情况”你必须获得桌面分辨率和屏幕(监视器)DPI并自己计算单位。
但在第一次去我会尝试使用 TransformPoints:http: //msdn.microsoft.com/en-us/library/k42sdzey.aspx

于 2013-04-23T09:15:02.267 回答