Csharp/C#教程:.NET GDI +中的字体大小差异?分享


.NET GDI +中的字体大小差异?

我试图理解用户选择或指定的字体大小(例如,使用FontDialog )与.NET中Font类报告的em-size之间的差异,这让我绞尽脑汁。

例如:

using (FontDialog dlg = new FontDialog()) { if (dlg.ShowDialog() == DialogResult.OK) { Console.WriteLine("Selected font size: " + dlg.Font.SizeInPoints.ToString("0.##")); } } 

使用上面的代码,您将得到一些令人困惑的结果:

在对话框中选择11将产生11.25

在对话框中选择12将产生12

在对话框中选择14将产生14.25

在对话框中选择16将产生15.75

无论您选择哪种字体,都会出现此问题。 从上面可以看出,差异中没有模式,它似乎在+0.25和-0.25之间随机变化。

我只是通过将字体大小显示为舍入的整数来解决这个问题,但我发誓我已经看到了允许用户选择小数字体大小的文字处理/ DTP包 – 而且这些包没有显示上述行为与Windows字体对话框交互时。

任何人都可以为此提供合理的解释吗? 是否有最佳实践技术在UI中显示字体大小? 当用户想要像“10 .5”这样的小数时,怎么样?

差异没有模式

如您所见,字体大小以0.75的增量发生。

编辑:如果您不使用字体对话框,您可以微调大小,但我怀疑结果将不如“首选”大小。

考虑这些花絮:

0.75是不幸的! 这意味着如果我们允许用户直接选择点,那么理想的渲染将仅绘制逻辑点的一部分。 如果我们可以将整个渲染向上或向下捕捉到最近的整个逻辑点,那就太好了。

准备? 开始了!





你明白了。

请记住,如果用户更改其逻辑分辨率(96 dpi,120 dpi等),这些数字将会改变

上述就是C#学习教程:.NET GDI +中的字体大小差异?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/953069.html

(0)
上一篇 2021年11月19日
下一篇 2021年11月19日

精彩推荐