Если вы не возражаете возиться в реестре, взгляните на
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Fonts
У него есть такие пары, как
Name = "Arial (TrueType)"
Data = "arial.ttf"
Вы можете сделать это необходимые запросы, как это:
static RegistryKey fontsKey =
Registry.LocalMachine.OpenSubKey(
@"Software\Microsoft\Windows NT\CurrentVersion\Fonts");
static public string GetFontFile(string fontName)
{
return fontsKey.GetValue(fontName, string.Empty) as string;
}
Вызов GetFontFile("Arial (TrueType)")
возвращает "arial.ttf"
Конечно, вы можете изменить код, добавив часть (TrueType)
к fontName
, или просмотреть все, возвращенное fontsKey.GetValueNames()
, чтобы найти лучшее совпадение.