使用System.Drawing.Font时Mac中的Mono System.Argument异常

时间:2014-03-13 17:58:04

标签: c# .net macos fonts mono

我试图用C#(Mono)中的系统字体创建一个新字体。

 System.Drawing.Font myfont=System.Drawing.SystemFonts.DefaultFont 

代码在Windows中正常运行但是在Mac上运行时我得到一个参数异常 - The Requested font family Could not be found

我认为默认字体可能会丢失,所以我尝试使用Helvtica。默认情况下安装在Mac上

  System.Drawing.Font myfont=new System.Drawing.Font("Helvetica",10f);

仍然是同样的例外

1 个答案:

答案 0 :(得分:2)

根据SystemFonts.cs,默认字体为Microsoft Sans Serif size 8.25。

你提到的异常是从gdipFunctions.cs抛出的,这意味着你很可能使用Mono 2.0或Mono的类似旧分支,它使用基于GDI的FontFamilies实现而不是CoreText实现。

您是否安装了xquartz以及fontconfig的输出是什么,相关的错误报告是FontFamilyNotFound exception from bundled Xamarin.Mac app on OS X 10.7,建议升级到3.0.12或更高版本的Mono版本。

总之,要么升级您的Mono版本,要么安装xquartz并确保作为FreeType的一部分的fontconfig配置能够根据the release notes中的注释检测您要使用的字体。