Почему свойство SKFontMetrics Leading иногда равно 0? - PullRequest
0 голосов
/ 02 ноября 2018

Похоже, что при получении метрики пользовательского SKTypeface шрифта используется:

SKPaint paint = new SKPaint
{
    Color = fontColor,
    HintingLevel = SKPaintHinting.Slight,
    IsAntialias = true,
    Style = SKPaintStyle.Fill,
    SubpixelText = true,
    TextSize = fontSize,
    Typeface = fontFamily
};
SKFontMetrics metrics;
paint.GetFontMetrics(out metrics);

Иногда пользовательский шрифт metrics.Leading равен 0, что разрушает наши расчеты по размещению текста на холсте. Есть ли какой-либо другой надежный способ рассчитать лидерство при SKTypeface?

Например, когда шрифт загружается в браузер с помощью плагина FabricJS и используется для визуализации текста «106» с использованием шрифта, он каким-то образом знает о ведущем значении:

enter image description here

Но когда я загружаю шрифт с помощью SkiaSharp и получаю SKFontMetrics, ведущий становится равным 0, что затем помещает текст ниже, чем должно быть:

enter image description here

Кто-нибудь имеет представление о том, что делать, если начальное значение шрифта равно 0 или почему браузер узнает начальное значение шрифта, а SkiaSharp - нет?

...