2012-03-14 42 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