我需要在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
吗?
答案 0 :(得分:1)
请参阅文档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
答案 1 :(得分:0)
对WPF的内容不太了解,但如果有一种方法可以将像素转换为点,则可以使用1英寸= 72磅的比例。