Как получить тип шрифта в .NET 5?

#c# #.net-5

#c# #.net-5

Вопрос:

С помощью функции Win32 API EnumFontFamiliesExA или EnumFontFamiliesExW мы можем получить тип шрифта из обратного вызова lpProc:

 int CALLBACK EnumFontFamExProc(
   const LOGFONT    *lpelfe,
   const TEXTMETRIC *lpntme,
         DWORD      FontType,
         LPARAM     lParam
);
 

В .NET 5 мы можем получить все установленные шрифты с InstalledFontCollection помощью класса.

Однако я не могу найти ни одного свойства, указывающего, является ли объект FontFamily векторным или растровым шрифтом.

Возможно ли получить тип шрифта без вызова Win32 API в .NET 5?

Комментарии:

1. TextMetrics. Свойство PitchAndFamily. => GetOutlineTextMetrics() -> OUTLINETEXTMETRIC -> TEXTMETRIC -> tmPitchAndFamily member.

2. Метрики шрифта предполагают контекст устройства, в котором выбран шрифт. Вместо этого TextMetrics указывает метрики физического шрифта выбранного шрифта. См.: VisualStyleRenderer. GetTextMetrics() и глифы , GlyphRun -> GlyphTypeface

3. …связанный с GetGlyphOutline