将 System.Drawing.Font.Size 转换为 WPF FontSize
Posted
技术标签:
【中文标题】将 System.Drawing.Font.Size 转换为 WPF FontSize【英文标题】:Convert System.Drawing.Font.Size to WPF FontSize 【发布时间】:2012-03-30 20:10:48 【问题描述】:我需要在 WPF“字体”中转换 GDI 字体。
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 中是像素...如何从一种转换为另一种?
附言。 按照 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】:乘法。一个点是 1/72 英寸,而 WPF 设备无关单位(“WPF 像素”)是 1/96 英寸。
您可以通过在 XAML 中指定 WPF 控件的 FontSize 属性来验证这一点,例如“24”和“18pt”。您将意识到这两个值会产生相同的实际字体大小。
【讨论】:
不,应该是myWpfLabel.FontSize = myDrawingFont.SizeInPoints / 72 * 96
。以上是关于将 System.Drawing.Font.Size 转换为 WPF FontSize的主要内容,如果未能解决你的问题,请参考以下文章
Javascript 将正则表达式 \\n 替换为 \n,将 \\t 替换为 \t,将 \\r 替换为 \r 等等