Преобразовать размер шрифта в дюймах - PullRequest
1 голос
/ 23 марта 2012

Мне нужно конвертировать между Drawing.Font.Size (с плавающей точкой,?) И WPF FontSize (двойной, WPF пикселей).

Наконец, я решил сохранить в базе данных размер шрифта в дюймах ...

Как преобразовать размер шрифта 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 Pixels?

Как теперь мне преобразовать это значение в GDI?

gdiFont.SizeInPoints = myUniversalFontSize / 96 * 72???

Могу ли я использовать во втором примере также myFontSizeConverter?

Ответы [ 2 ]

1 голос
/ 23 марта 2012

См. Документацию 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

0 голосов
/ 23 марта 2012

Не много знаю о материалах WPF, но если есть метод преобразования из пикселей в точки, вы можете использовать масштаб 1 дюйм = 72 точки.

...