Mono PrivateFontCollection.AddFontFile错误的解决方法

当我在Mono.net中调用PrivateFontCollection.AddFontFile方法时,它总是返回一个标准的font-family。 这个bug已经在几个网站上报道,但据我所知,没有办法解决它。 错误本身尚未在Mono-libraries中修复。 它有什么解决方法吗?

编辑:作为对henchman的回答的反应,我将发布代码:

PrivateFontCollection pfc = new PrivateFontCollection(); pfc.AddFontFile("myFontFamily.ttf"); myFontFamily = pfc.Families[0x00]; Font myFont = new Font(myFontFamily,14.0f); 

我知道这个代码在Microsoft.Net框架上运行正常,但是当在Mono上执行时,它只是给出了一个标准的字体系列(我认为它是Arial),其名称为myFontFamily.ttf

从谷歌发现这篇文章。 如果它是任何安慰,我遇到与AddMemoryFont相同的问题(在Windows上工作正常,单声道给我一个通用字体。)如果它是任何安慰,它看起来像是Mono的问题,而不是你的代码。

通过源代码,System.Windows.Drawing.PrivateFontCollection主要只是GDIPlus.GdipPrivateAddFontFile的包装器,它本身就是fontconfig的FcConfigAppFontAddFile的包装器。 它似乎没有抛出任何错误的原因是GDIplus没有检查来自fontconfig的返回值,所以看起来fontconfig因为某种原因无法读取字体,但是GDIplus不知道它,所以PrivateFontCollection也没有。