我有兩個應用程序使用相同的數據來創建一個用戶界面,一個使用WPF,另一個使用GDI。根據Windows中的字體名稱屬性,我使用的字體爲Myriad Condensed Web
。我沒有問題使用給定的字體名稱實例化System.Drawing.FontFamily
對象。但是,當我使用WPF的System.Windows.Media.FontFamily
創建此字體時,我只能使用名稱Myriad Web
來完成此操作。我無法在窗口字體控制面板的字體屬性中的任何位置找到對此值的引用。當我檢查System.Windows.Media.Fonts.SystemFontFamilies
時,Myriad Web
是Source屬性的值。WPF的FontFamily.Source從何處檢索其值?
所以我的問題是,WPF從哪裏得到這個值?爲什麼它與GDI的價值不同?我怎樣才能使用一個字體名稱爲GDI和WPF實例化相同的字體?我想避免存儲兩個值 - 一個用於GDI,一個用於WPF。
感謝您的建議解釋,這*確實有道理。是的,它確實殺了我的計劃。我可能不得不想出另一個解決方案。 – Sio 2010-09-01 17:37:59
對於任何遇到同樣問題的人 - 我使用Lite 2.2版本將此問題解決,將字體系列的名稱從「Myriad Condensed Web」更改爲「Myriad Web」,這使得它在GDI +中的名稱與它在WPF中有。我想知道如果WPF嘗試通過從名稱中刪除樣式屬性(如「濃縮」)來推斷字體系列名稱,其中GDI +使用完整的給定字體名稱。 – Sio 2010-09-01 22:17:44
也許這是一個好主意,如果你記錄什麼「類型2.2」意味着備份你的評論。這不是我以前聽過的常用術語。儘管如此。 – 2010-09-01 22:23:06