爲了理解用戶在.NET中選擇或指定的字體大小(例如,使用FontDialog)和Font類別報告的字體大小之間的差異,我正在絞盡腦汁。.NET GDI +中字體大小的不一致?
例如:
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字體對話框交互時顯示上述行爲。
任何人都可以提供一個合理的解釋呢?在用戶界面中顯示字體大小是否有最佳實踐技巧?用戶想要分數大小如'10.5'時怎麼樣?
所以基本上,是改變整體尺寸在通用對話框(並一直)近似值?我是唯一一個覺得這有點莫名其妙的人嗎? :/ 向用戶提供分數字體大小顯然沒有意義,因爲在既定的約定中已經存在不精確的元素... – 2010-08-23 10:09:07
@Bradley Smith:根據我的理解,是的。但是,如果您以不同的DPI設置運行顯示器,則可能會有所不同。我建議你一起玩,沒有得到答案,問問自己。 – leppie 2010-08-23 10:22:10