Подтвердить что ты не робот

Преобразование между размером шрифта WPF и стандартным размером шрифта

Я заметил, что в WPF размер шрифта по умолчанию, равный 12 точкам, примерно эквивалентен 9 пунктам в "нормальных" приложениях (например, WordPad), 10 pt в WPF составляет примерно 7 pt, и когда я пытаюсь сопоставить размер шрифта по умолчанию 10 pt в WordPad в WPF, я нашел, что 13 является самым близким.

Прежде всего, почему WPF использует такие странные нестандартные размеры шрифта, а во-вторых, есть ли надежный способ конвертировать между двумя?

Моя причина для запроса: я хочу создать меню размера шрифта со стандартными размерами шрифтов 9, 10, 12, 14, 16, 18, 24, 36, 48, но я уверен, что если я использую эти фактические значения они будут дико отключены.

4b9b3361

Ответ 1

WPF использует пиксели в качестве единицы по умолчанию для размер шрифта. Отображение между указывает (возможно, что вы имеете в виду, когда говорите "стандартный" размер шрифта), а пиксели: 1 pt = (96/72) ПВ

Это дает нам простую функцию преобразования:

public static double PointsToPixels(double points)
{
    return points*(96.0/72.0);
}

Подробнее см. этот вопрос.

Ответ 2

Другим методом преобразования, если вы переходите от точки к двойному WPF, является использование класса System.Windows.FontSizeConverter:

double sizeForWpf = (double) new FontSizeConverter().ConvertFrom("10pt");