Re[5]: WPF. Fonts enumeration
От: HotDog Швейцария www.denebspace.com
Дата: 24.11.16 16:40
Оценка: 33 (6) +1 :)
Здравствуйте, HotDog, Вы писали:

MM>>Blend же вроде managed. Залезь в исходники Reflector-ом каким-нибудь. Наверное, через EnumFontFamiliesEx получают. Как это потом ложится на WPF, к сожалению, не подскажу.


Может быть кому то будет интересно как это делается "по майкрософтовски" то бишь в Blend.

— Идем в Path.Combine(Environment.GetEnvironmentVariable("windir"), "Fonts") и получаем списов всех файлов там лежащих
— В каждом найденном файле пытаемся получить Typeface через Fonts.GetTypefaces(file)
— У каждого найденного typeface получаем gdiName: typeface.TryGetGlyphTypeface()
— У каждого найденного typeface пытаемся получить wpfName: fontFamily = new FontFamily(filePath + "#" + gdiName), если не получилось, то откатываемся на gdiName
— Заталкиваем в dictionary, Profit!

По моей шкале говнокода это получает 10 раджикумаров из 10 возможных.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.