Wil*_*sem 10 c# mono privatefontcollection
当我在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);
Run Code Online (Sandbox Code Playgroud)
我知道这个代码在Microsoft.Net框架上可以正常工作,但是当在Mono上执行时,它只是给出一个标准的字体系列(我认为它是Arial),其名称为myFontFamily.ttf
从谷歌找到这篇文章。如果有任何安慰的话,我在 AddMemoryFont 上遇到了同样的问题(在 Windows 上工作正常,mono 给了我一个通用字体。)如果有任何安慰,看起来这是 Mono 的问题,而不是你的代码。
深入研究源代码,System.Windows.Drawing.PrivateFontCollection 主要只是 GDIPlus.GdipPrivateAddFontFile 的包装器,而 GDIPlus.GdipPrivateAddFontFile 本身是 fontconfig 的 FcConfigAppFontAddFile 的包装器。它似乎没有抛出任何错误的原因是 GDIplus 不检查 fontconfig 的返回值,因此似乎 fontconfig 由于某种原因无法读取字体,但 GDIplus 不知道这一点,所以 PrivateFontCollection 也不会。
| 归档时间: |
|
| 查看次数: |
1412 次 |
| 最近记录: |