【问题标题】:Crash due to missing standard Fonts (VB.NET)由于缺少标准字体(VB.NET)而崩溃
【发布时间】:2009-10-09 17:50:06
【问题描述】:

我们的自动崩溃报告系统已开始发送越来越多的此类崩溃报告:

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 上随处可用,并且当找不到字体时,Windows 会恢复为另一种确实存在的字体+样式。

处理这个问题的正确方法是什么?我的应用需要为不同的显示元素定义多种标准字体。到目前为止,我已经对 Arial、Courier New、Comic Sans Serif 和 Times New Roman 进行了硬编码,并且我已经收到了所有这些的崩溃报告。

一旦用户安装了丢失的字体,一切就又好了。

【问题讨论】:

    标签: vb.net fonts crash


    【解决方案1】:

    避免这种情况的一种方法是将字体直接嵌入到您的应用程序中。从许可的角度来看,像 Arial 这样的核心 TTF 字体应该没问题:

    阅读此内容以了解许可规范:

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

    如何将字体嵌入到 VB.NET 应用程序中:

    http://www.tek-tips.com/faqs.cfm?fid=4747
    

    【讨论】:

      猜你喜欢
      • 2015-04-17
      • 1970-01-01
      • 1970-01-01
      • 2012-02-12
      • 2011-11-09
      • 2021-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多