gpt4 book ai didi

.Net 不一致的字体渲染

转载 作者:行者123 更新时间:2023-12-01 12:00:43 25 4
gpt4 key购买 nike

我正在创建一个 .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'

  • 在机器 1 上“Hello World”尺寸为 69.0px,14.7px
  • 在机器 2 上“Hello World”尺寸为 86.3px、18.4px

为什么会有这种差异?因此,我的应用程序字体看起来更大并影响布局。

alt text alt text

编辑:

两台机器都有 .Net 2.0 SP2 ,但它们的分辨率和屏幕尺寸不同。我知道字体的物理尺寸(在物理屏幕上)会因分辨率和屏幕尺寸而异。但我的问题是为什么它们的像素单位尺寸不同?

机器 2 是 eeetop ET1602对于 Windows XP,它的触摸屏系统,默认情况下它带有更大的所有桌面字体,但我已将 Windows 主题/Windows 字体重置为默认值。

最佳答案

当您选择“Verdana 8.25”时,这个 8.25 与像素没有直接关系,而是将它们视为“点”,如果屏幕 DPI 不同,它们将在不同的机器上呈现不同。

在 Windows 中,在桌面设置下,您可以选择在不更改分辨率的情况下增加屏幕字体大小。如果您增加屏幕字体大小,则每像素点数会发生变化,这可以测量不同机器上相同文本的不同像素大小。

这是因为老年人不能阅读较小的字体,这就是为什么他们可以在桌面设置中增加字体大小。并且只能以磅为单位指定字体大小,如果将字体大小固定为像素,则老年人或视障人士将难以正确阅读文本。这样整个操作系统的文本大小由用户控制。

关于.Net 不一致的字体渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1944737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com