为什么 .NET 中大小为 8 的字体显示为 8.25?
例如,当您在 Microsoft Sans Serif 的字体对话框中选择大小 8 时,它会返回 .NET 显示为大小 8.25 的字体?
这是为什么呢?
When you select, for example, a Size of 8 in a Font Dialog for Microsoft Sans Serif, it returns a font that .NET displays as having a size 8.25?
Why is this exactly?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
磅为 1/72 英寸,因此字体高度应为 8/72 (0.111111) 英寸。 Windows 假定标准显示器为 96 DPI,除非您煞费苦心地进行其他配置。 这意味着它尝试创建一个 10.66667 像素高的字体; 它四舍五入到 11 像素。 当您将其转换回点 ((11 / 96) * 72) 时,它变为 8.25。
A point is 1/72 of an inch, so the font should be 8/72 (0.111111) inches high. Windows assumes a standard display is 96 DPI, unless you take pains to configure it otherwise. That means it tries to create a font that's 10.66667 pixels high; it rounds to 11 pixels. When you convert that back to points ((11 / 96) * 72), it becomes 8.25.
这很可能是由于 Windows 字体映射器计算字体大小的方式造成的。 字体单元格的像素高度与正常“点”@ 1/72 英寸之间存在细微差别。
更多信息请参见:http://msdn.microsoft.com/en-us/库/ms969909.aspx
This is most likely due to the way the Windows Font Mapper calculates font sizes. There is a slight difference between pixel heights of font cells and normal "points" @ 1/72 of an inch.
More info here: http://msdn.microsoft.com/en-us/library/ms969909.aspx