Сбой из-за отсутствия стандартных шрифтов (VB.NET) - PullRequest
3 голосов
/ 09 октября 2009

Наша автоматическая система отчетов о сбоях начала отправлять все больше и больше отчетов о сбоях такого типа:

System::Windows::Forms::Application::ThreadException event occured
SENDER: System.Threading.Thread

EXCEPTION: System.ArgumentException
MESSAGE: Font 'Arial' does not support style 'Regular'.
SOURCE: System.Drawing
CALL STACK
   at System.Drawing.Font.CreateNativeFont()
   at System.Drawing.Font.Initialize(FontFamily family, Single emSize, FontStyle style, GraphicsUnit unit, Byte gdiCharSet, Boolean gdiVerticalFont)
   at System.Drawing.Font..ctor(FontFamily family, Single emSize)
   at Kernel.EH_FontServer.CreateFont(String family, Single size, FontStyle style) in **
   at Kernel.EH_FontServer..cctor() in **

У меня сложилось впечатление, что Arial должен быть доступен везде в Windows, и, когда шрифт не может быть найден, окна вернутся к другому шрифту + стилю, который существует.

Как правильно справиться с этим? Моему приложению нужно определить ряд стандартных шрифтов для разных элементов отображения. До сих пор я жестко запрограммировал Arial, Courier New, Comic Sans Serif и Times New Roman, и я получаю отчет о сбое для всех из них.

Как только пользователь установит отсутствующий шрифт, все снова будет в порядке.

1 Ответ

2 голосов
/ 09 октября 2009

Один из способов избежать этого - встроить шрифты прямо в ваше приложение. Основные шрифты TTF, такие как Arial, должны быть в порядке с точки зрения лицензирования:

Прочтите это для спецификации лицензирования:

http://www.microsoft.com/typography/RedistributionFAQ.mspx

Как встраивать шрифты в приложения VB.NET:

http://www.tek-tips.com/faqs.cfm?fid=4747
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...