如何获取字体文件名?

时间:2011-09-13 20:25:28

标签: c# fonts

我已经写了这段代码:

List<string> fontNames = new List<string>();
foreach (FontFamily font in FontFamily.Families)
{
    fontNames.Add(font.Name);
}

获取字体名称,但是如果你想将字体复制到另一个文件夹,我怎样才能获得字体的文件名以进行复制操作?

谢谢。

2 个答案:

答案 0 :(得分:2)

如果您能够访问注册表,那么您可以从密钥中获取文件名:'HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Fonts',基本上每个字体文件都放在C:\中Windows \ Fonts,除非在别处提及。

答案 1 :(得分:1)

CP上有一个C ++解决方案getting a filename from a HFONT GDI+ font handle

您可以先使用Font.ToHfont() method获取字体句柄,然后使用上述CP文章中的代码。当然,这需要使用一些PInvoke将C ++代码重写为C#。