以英寸为单位转换字体大小

本文关键字:字体 转换 为单位 | 更新日期: 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点的比例。