Конвертировать System.Drawing.Font.Size в WPF FontSize. - PullRequest
4 голосов
/ 14 марта 2012

Мне нужно конвертировать шрифт 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.
СвернутьПоказания Клеменса, это правильно?

  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 Ответ

8 голосов
/ 14 марта 2012

Умножением.Точка равна 1/72 дюйма, тогда как независимые от устройства единицы измерения WPF («пиксели WPF») - 1/96 дюйма.

Это можно проверить, указав FontSize * элемента управления WPF.1004 * свойство в XAML как например "24" и "18pt".Вы поймете, что оба значения приводят к одному и тому же фактическому размеру шрифта.

...