1

У меня есть приложение asp.net, и я использую собственный шрифт, однако мне нужно использовать как полужирную версию, так и легкую версию шрифта. Они оба из одного семейства шрифтов. Я добавляю их, как это:Используйте различные веса пользовательского шрифта?

protected PrivateFontCollection pfc = new PrivateFontCollection(); 

pfc.AddFontFile(HttpContext.Current.Server.MapPath(@"~\Content\Fonts\Exo-Bold.ttf")); 
pfc.AddFontFile(HttpContext.Current.Server.MapPath(@"~\Content\Fonts\Exo-Light.ttf")); 

Font questionFont = new Font(pfc.Families[0], 32, FontStyle.Regular, GraphicsUnit.World); 

Хотя я добавляю два файла шрифта, есть только один элемент в массиве Families рк, поэтому все не печатается жирным шрифтом, независимо от того, что FontStyle уточняю. Как я могу использовать оба файла, которые я добавил, и как я могу сделать некоторые вещи смелыми, а некоторые вещи светятся?

+0

использует css @ font-face rule вариант? http://stackoverflow.com/questions/2436749/how-to-define-bold-italic-using-font-face – KHeaney

+0

Нет, мне нужно использовать метод DrawString на объекте Graphics ... – KateMak

ответ

0

Не нужно добавлять один и тот же шрифт дважды в разные стили. Большинство шрифтов поддерживают несколько стилей. Нижеследующее прекрасно работает при добавлении только что-то вроде Arial.ttf.

Font regularFont = new Font(pfc.Families[0], 32, FontStyle.Regular, GraphicsUnit.World); 
Font boldFont = new Font(pfc.Families[0], 32, FontStyle.Bold, GraphicsUnit.World); 
+0

Как я могу получить «светлую» версию шрифта? К сожалению, я уже пробовал вышеупомянутый подход и не могу получить результаты, которые я хочу. – KateMak

+0

Я не уверен, какой шрифт вы используете, но если вы посмотрите на обычные шрифты, установленные в вашей системе, нет отдельных «жирных» или «курсивных» версий. Если это проблема с вашим шрифтом, я просто не буду использовать 'PrivateFontCollection'. – Zer0

Смежные вопросы