我使用c#中的以下代码在面板上绘制一个毫米的矩形,在运行时输入mm的宽度和长度。但是,绘制的结果矩形在不同的监视器中的大小不同。我希望矩形看起来大小相同,无论在任何监视器中运行应用程序。可以帮我吗?目前,10mm的宽度为12mm,10mm的长度使用刻度显示为11mm。我在不同的显示器上测试了应用程序,它再次显示了不同的长度。无论如何,我是否可以证明它具有相同的宽度和长度?
void panel1_Paint(object sender, PaintEventArgs e)
{
SolidBrush ygBrush = new SolidBrush(Color.YellowGreen);
g = panel1.CreateGraphics();
g.PageUnit = GraphicsUnit.Millimeter;
int w = Int32.Parse(textBox1.Text.ToString());
int h = Int32.Parse(textBox2.Text.ToString());
rct = new Rectangle(94, 27, w, h);
g.FillRectangle(ygBrush, rct);
}
答案 0 :(得分:2)
大多数显示器配置不正确,因此计算机知道DPI(每英寸点数)。像毫米这样的物理单位只有在计算机知道 毫米(水平和垂直)的像素数时才有效。
基本上,您使用的方法是正确的 - 但在现实世界中您很难遇到配置正确的计算机。
如果您需要在软件中解决此问题,则可以包含“配置”选项,其中用户将负责设置应用程序的比例。