在 mono 上使用 Font 的一些事

昨天碰到的事情,紀錄一下:

  1. mono 1.0 類別庫裡的 Font,有一些 ctor 裡面是空的。如果你發現使用了某個 function 沒作用,或是有些問題,你可以參考一下Mono Class Status以取得類別庫實作的狀況~或者利用Reflector for .NET反組譯看看,免得傻傻在那邊查了半天還不知道原因出在哪。
  2. 字型的底層是 libgdiplus,更底層則是CairoCairo又再使用了FreeType函式庫(好像還有別的,不過這是主要的)。所以字型的設定是取決於fontconfig的設定:/etc/fonts/fonts.conf(用FreeType好像跟這設定沒啥關係,總之我是這樣聯想到的),當你使用某個字型卻無法正常顯示時(例如中文),不妨參考設定然後直接指定字型名稱:

    Font textFont = new Font( “AR PL Mingti2L Big5”, 12, FontStyle.Regular, GraphicsUnit.Pixel, 1, false);

    ,應該就行了。