Похоже, что при получении метрики пользовательского 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» с использованием шрифта, он каким-то образом знает о ведущем значении:

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

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