我正在创建.Net 2.0 SP2 Windows窗体应用程序。表格字体在我的机器上看起来很好,当我在另一台机器上尝试时,它看起来更大。 (这不是因为分辨率差异,字体相对于其他图标等更大。)
我尝试调试问题,发现以下代码在不同的机器上返回不同的大小。
//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'
为什么会出现这种差异?因为这个我的应用程序字体看起来更大并影响布局。
修改
两台机器都有.Net 2.0 SP2,但它们的分辨率和屏幕尺寸不同。据我所知,字体物理尺寸(在物理屏幕上)会随分辨率和屏幕尺寸而变化。但我的问题是为什么它们的像素单位尺寸不同?
机器2是eeetop ET1602与windows xp,它的触摸屏系统,默认它附带所有桌面字体更大,但我已将Windows主题/ Windows字体重置为默认值。
答案 0 :(得分:4)
当你修改“Verdana 8.25”时,这个8.25直接与像素无关,而是被视为“点”,如果屏幕DPI不同,它们将在不同的机器上以不同的方式呈现。
在Windows中,在“桌面设置”下,您可以选择在不更改分辨率的情况下增加屏幕字体大小。如果增加屏幕字体大小,则每个像素的点数会发生变化,这可以测量不同机器上相同文本的不同像素大小。
这是因为老人无法阅读较小的字体,这就是为什么他们可以增加桌面设置中的字体大小。并且您只能以点数指定字体大小,如果字体大小将固定为像素,那么旧的或视障人士将难以正确阅读文本。这样,整个操作系统的文本大小就由用户控制。
答案 1 :(得分:1)
这看起来像DPI字体缩放设置为“大字体”?
修改强>
请参阅Akash Kava的回复 - 他详细介绍了“大字体”设置。