【发布时间】:2011-04-02 11:25:30
【问题描述】:
我绞尽脑汁试图理解用户选择或指定的字体大小(例如,使用 FontDialog)与 Font .NET 中的类。
例如:
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'时怎么样?
【问题讨论】: