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

时间:2012-03-23 14:19:02

标签: c# .net wpf vb.net gdi+

我需要在Drawing.Font.Size(浮点数,?)和WPF FontSize(双倍,WPF像素)之间进行转换。

最后,我决定在数据库中存储fontSize in inch ...

如何将GDI FontSize转换为英寸,将WPF FontSize转换为英寸?

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吗?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

对WPF的内容不太了解,但如果有一种方法可以将像素转换为点,则可以使用1英寸= 72磅的比例。