Необычное преобразование шрифта - PullRequest
1 голос
/ 08 февраля 2010

У меня есть следующая строка в файле, и ее нужно преобразовать обратно в объект Font. Но я не уверен, как это сделать:

строка шрифта:

[Font: Name=Segoe UI, Size=14, Units=3, GdiCharSet=1, GdiVerticalFont=False]

Я ценю любую помощь, спасибо

Баел

Ответы [ 2 ]

2 голосов
/ 08 февраля 2010

Проверьте мой класс FontBuilder в библиотеке CC.Utilities . Он делает именно то, что вам нужно, и предоставляет метод расширения ToStringEx() для покрытия свойства FontStyle, которое отсутствует Font.ToString().

Я изначально написал это, чтобы я мог сохранить Font в реестре

Редактировать: Вот конкретные файлы, которые вас не интересуют в целом:

FontBuilder: http://ccutilities.codeplex.com/SourceControl/changeset/view/40596#648008 FontExtensions: http://ccutilities.codeplex.com/SourceControl/changeset/view/40596#664902

1 голос
/ 08 февраля 2010

Существуют различные конструкторы шрифтов , этот , кажется, отвечает всем требованиям:

Конструктор шрифтов (String, Single, FontStyle, GraphicsUnit, Byte, Boolean)

Инициализирует новый шрифт, используя указанный размер, стиль, единицу измерения и набор символов.

Параметры

FamilyName
Тип: System.String
Строковое представление FontFamily для нового шрифта.

emSize
Тип: System.Single
Размер em нового шрифта в единицах, указанных параметром unit.

стиль
Тип: System.Drawing.FontStyle
FontStyle нового шрифта.

блок
Тип: System.Drawing.GraphicsUnit
GraphicsUnit нового шрифта.

gdiCharSet
Тип: System.Byte
Байт, который задает набор символов GDI для использования в этом шрифте.

gdiVerticalFont
Тип: System.Boolean
Логическое значение, указывающее, является ли новый шрифт производным от вертикального шрифта GDI.

Если, конечно, я неправильно прочитал вашу строку.

Вам нужно будет проанализировать строку, чтобы передать соответствующие значения конструктору.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...