2012-03-23 119 views
1

我需要在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嗎?

回答

1
+0

我需要兩者。 96是用於WPF,但用於GDI? – moldovanu 2012-03-23 14:43:56

+0

我不明白LenghtConverter ...我需要轉換爲某些東西,這將允許我在WPF和GDI之間切換多次,而不改變「真實值」。每個部分和後面的乘法將累積錯誤... – moldovanu 2012-03-23 15:19:52

+0

您可能能夠以1爲1來存儲數據庫。您將使用LengthConverter爲字體指定大小,並且它們將被正確渲染。但現在我猜測。正如我理解你的問題,我現在還沒有真正的答案。抱歉 – Paparazzi 2012-03-23 18:35:32

0

不太瞭解WPF的東西,但是如果有一種方法將像素轉換爲點,則可以使用1英寸= 72點的比例。

+0

也參見http://stackoverflow.com/questions/9700753/convert-system-drawing-font-size-to-wpf-fontsize – Klaus78 2012-03-23 14:32:01

+0

同意我在= 72點以爲1,但MS文檔中它是96 – Paparazzi 2012-03-23 14:42:50

+0

我沒有看到。我看到他們顯示一個點相對於每英寸像素除以72.一個點是1/72英寸。如果每英寸有96像素,則1點= 1.333333像素。 – mlibby 2012-03-23 14:48:14

相關問題