我正在创建一个 .Net 2.0 SP2 Windows 表单应用程序。在我的机器上,表单字体看起来很好,但在另一台机器上尝试时,它看起来更大。(这不是因为分辨率差异,相对于其他图标等字体更大。)
我尝试调试问题并发现以下代码在不同的机器上返回不同的大小。
我希望graphics.measurestring()在不同的机器上针对相同参数返回相同的值。
对于字体“Verdana 8.25”:
- 在机器1上,“Hello World”的测量值为69.0px,14.7px。 - 在机器2上,“Hello World”的测量值为86.3px,18.4px。
为什么会有这种差异?因为这导致我的应用程序字体看起来更大,影响布局。
我尝试调试问题并发现以下代码在不同的机器上返回不同的大小。
//inside a windows form
private void checkfont()
{
var g = this.CreateGraphics();
MessageBox.Show(g.MeasureString("Hello World", this.Font) + "," + this.Font);
}
我希望graphics.measurestring()在不同的机器上针对相同参数返回相同的值。
对于字体“Verdana 8.25”:
- 在机器1上,“Hello World”的测量值为69.0px,14.7px。 - 在机器2上,“Hello World”的测量值为86.3px,18.4px。
为什么会有这种差异?因为这导致我的应用程序字体看起来更大,影响布局。
编辑:
两台机器都安装了 .Net 2.0 SP2,但它们的分辨率和屏幕尺寸不同。我知道字体在物理屏幕上的物理尺寸会随着分辨率和屏幕尺寸的变化而有所不同。但我的问题是为什么它们的像素单位尺寸不同?
机器2是eeetop ET1602,运行Windows XP,具备触摸屏系统。默认情况下,所有桌面字体都比较大,但我已将Windows主题/字体重置为默认设置。