将 System.Drawing.Font.Size 转换为 WPF FontSize

6
我需要将一个GDI字体转换为WPF "字体"。
myGdiFont As System.Drawing.Font

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

特别地,我需要转换
_Size = myGdiFont.Size (???)

在WinForms中,字体大小以单位或点为单位...在WPF中以像素为单位...如何从一个转换到另一个?

PS.
根据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
1个回答

10

通过乘法。一个点是1/72英寸,而WPF设备独立单位(“WPF像素”)是1/96英寸。

您可以通过在XAML中指定WPF控件的FontSize属性为"24"和"18pt"来验证这一点。您会意识到两个值都会导致相同的实际字体大小。


3
不,应该写成 myWpfLabel.FontSize = myDrawingFont.SizeInPoints / 72 * 96 - Clemens

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接