2011-02-03 134 views
1

我需要將字體選擇器添加到我的WPF文本編輯器中。我正在修改this font chooser如何列出WPF中的等寬字體(固定寬度)

但是,它列出了所有已安裝的字體。我只需要一個固定寬度(等寬字體)字體的列表。

如何檢查給定的System.Windows.Media.FontFamily是否爲固定寬度的字體?

有一個解決方案that uses System.Drawing.FontFamily但這些字體不完全兼容WPF和我正在適應的代碼使用System.Windows.Media.FontFamily。

回答

1

也許你可以通過創建一個具有相同名稱的System.Drawing.Font來過濾System.Windows.Media.FontFamily列表,並從那裏使用inteop和LOGFONT。

這是一個可怕的技巧,但我相信它會在大多數情況下(如果你只使用安裝在系統上的字體System.Windows.Media.FontFamily和System.Drawing.FontFamily列表應該大多匹配)

使用這樣的東西來獲取字體大小信息或有關高級字體屬性的信息將完全無用,因爲WPF和GDI之間的字體呈現器的差異 - 但對於像固定寬度的字體的基本屬性,我希望這應該工作。

+0

是的,我正在考慮獲取固定寬度字體的名稱作爲過濾器的列表,無論是您提出的方式還是直接向EnumFonts()直接調用,但我希望有一種更簡單的方法。 – 2011-02-03 21:45:58