Обходное решение для Моно PrivateFontCollection. Ошибка AddFontFile

Когда я называю PrivateFontCollection. Метод AddFontFile в Mono.net Это всегда возвращает стандартное семейство шрифтов. Об этой ошибке уже сообщили на нескольких веб-сайтах, но насколько я знаю без способа решить ее. Сама ошибка еще не исправлена в Монобиблиотеках. Есть ли какое-либо обходное решение для него?

Править: Как реакция на ответе прихвостня я отправлю код:

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

Я знаю, что этот код будет хорошо работать на Microsoft. Сетевая платформа, но при выполнении на Моно, это просто дает стандартное семейство шрифтов (я думаю, что это - Arial) с названием myFontFamily.ttf

10
задан Kara 6 December 2013 в 02:24
поделиться

1 ответ

Нашел это сообщение в Google. Если это утешает, у меня та же проблема с AddMemoryFont (отлично работает в Windows, mono дает мне общий шрифт). Если это утешает, похоже, что это проблема с Mono, а не с вашим кодом.

Если копаться в исходном коде, то System.Windows.Drawing.PrivateFontCollection - это в основном просто оболочка для GDIPlus.GdipPrivateAddFontFile, которая сама по себе является оболочкой для FcConfigAppFontAddFile fontconfig. Причина, по которой он не вызывает никаких ошибок, заключается в том, что GDIplus не проверяет возвращаемое значение из fontconfig, поэтому кажется, что fontconfig не может прочитать шрифт по какой-либо причине, но GDIplus не знает об этом , поэтому PrivateFontCollection тоже.

1
ответ дан 4 December 2019 в 04:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: