2012-03-14 41 views
4

我需要轉換WPF「字體」中的GDI字體。將System.Drawing.Font.Size轉換爲WPF FontSize

myGdiFont As System.Drawing.Font 

_Family As Windows.Media.FontFamily 
_Style As Windows.FontStyle 
_Weight As Windows.FontWeight 
_Size As Double 

在particularry,我需要轉換

_Size = myGdiFont.Size (???) 

中的WinForms大小的字體是單位或點數...在WPF是在像素...如何從一個轉換到另一個?

PS。
Follwing Clemens指示,這是正確的嗎?

Dim myDrawingFont As New System.Drawing.Font("Arial", 10) 
    Dim myWpfLabel As New Windows.Controls.Label 
    myWpfLabel.FontSize = myDrawingFont.SizeInPoints * 72/96 

修正:

myWpfLabel.FontSize = myDrawingFont.SizeInPoints * 96/72 

回答

8

通過乘法。一點是1/72英寸,而WPF設備無關單元(「WPF像素」)是1/96英寸。

您可以通過在XAML中指定WPF控件的FontSize屬性(例如「24」和「18pt」)來驗證此情況。你會意識到兩個值的結果都是相同的實際字體大小。

+0

你能檢查我的編輯是否正確嗎? – serhio 2012-03-14 13:15:18

+2

不,它應該是'myWpfLabel.FontSize = myDrawingFont.SizeInPoints/72 * 96'。 – Clemens 2012-03-14 13:22:07