Преобразование между размером шрифта 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, но я уверен, что если я использую эти фактические значения они будут дико отключены.
Ответы
Ответ 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");