diff --git a/src/Skia/Avalonia.Skia/FontManagerImpl.cs b/src/Skia/Avalonia.Skia/FontManagerImpl.cs index 62ec39346a..178ee8c544 100644 --- a/src/Skia/Avalonia.Skia/FontManagerImpl.cs +++ b/src/Skia/Avalonia.Skia/FontManagerImpl.cs @@ -109,20 +109,23 @@ namespace Avalonia.Skia if (typeface.FontFamily.Key == null) { var defaultName = SKTypeface.Default.FamilyName; + var fontStyle = new SKFontStyle((SKFontStyleWeight)typeface.Weight, SKFontStyleWidth.Normal, (SKFontStyleSlant)typeface.Style); foreach (var familyName in typeface.FontFamily.FamilyNames) { - skTypeface = SKTypeface.FromFamilyName(familyName, (SKFontStyleWeight)typeface.Weight, - SKFontStyleWidth.Normal, (SKFontStyleSlant)typeface.Style); + skTypeface = _skFontManager.MatchFamily(familyName, fontStyle); - if (!skTypeface.FamilyName.Equals(familyName, StringComparison.Ordinal) && - defaultName.Equals(skTypeface.FamilyName, StringComparison.Ordinal)) + if (skTypeface is null + || (!skTypeface.FamilyName.Equals(familyName, StringComparison.Ordinal) + && defaultName.Equals(skTypeface.FamilyName, StringComparison.Ordinal))) { continue; } break; } + + skTypeface ??= _skFontManager.MatchTypeface(SKTypeface.Default, fontStyle); } else {