以英寸为单位转换字体大小
本文关键字:字体 转换 为单位 | 更新日期: 2023-09-27 18:29:00
我需要在Drawing.Font.Size
(float,?)和WPF FontSize
(double,WPF像素)之间进行转换。
最后,我决定将fontSize以英寸为单位存储在数据库中。。。
如何将GDI字体大小转换为英寸,将WPF字体大小转换成英寸?
sizeInInch = wpfFontSize / 96
sizeInInch = gdiFontSize / ?
我可以使用独立于DPI的东西吗?也许System.Windows.FontSizeConverter
?
我需要转换为一些东西,这将允许我在WPF和GDI之间多次切换,而不改变"实际值"。
每次除法和随后的乘法都会累积误差。。。
FontSizeConverter做了一个ConvertTo,但我不理解如何使用它:比如
myUniversalFontSize = (double)(myFontSizeConverter.ConvertFrom(
gdiFont.SizeInPoints.ToString() + "pt"))
将在…中转换我的gdiFont大小。。。?WPF像素?
现在我应该如何将该值转换回GDI?
gdiFont.SizeInPoints = myUniversalFontSize / 96 * 72???
我也可以在第二个例子中使用myFontSizeConverter
吗?
请参阅文档http://msdn.microsoft.com/en-us/library/system.windows.controls.control.fontsize.aspx
"in is inches; 1in==96px"
使用LengthConverter进行转换。http://msdn.microsoft.com/en-us/library/system.windows.lengthconverter.aspx
对WPF的东西不太了解,但如果有一种从像素转换为点的方法,你可以使用1英寸=72点的比例。