Практическое руководство. Перебор установленных шрифтов
InstalledFontCollection Класс наследует от FontCollection абстрактного базового класса. Можно использовать InstalledFontCollection объект для перечисления шрифтов, установленных на компьютере. Families Свойство InstalledFontCollection объект представляет собой массив FontFamily объектов.
Пример
Приведенный ниже список имен семейств шрифтов, установленных на компьютере. Код получает Name свойства каждого FontFamily объекта в массиве, возвращенном Families свойство. По мере извлечения имен семейств, они объединяются в форме, разделенный запятыми список. Затем DrawString метод Graphics класс создает список с разделителями запятыми в прямоугольнике.
Если запустить пример кода, выходные данные будут, как показано на следующем рисунке:
FontFamily fontFamily = new FontFamily("Arial");
Font font = new Font(
fontFamily,
8,
FontStyle.Regular,
GraphicsUnit.Point);
RectangleF rectF = new RectangleF(10, 10, 500, 500);
SolidBrush solidBrush = new SolidBrush(Color.Black);
string familyName;
string familyList = "";
FontFamily[] fontFamilies;
InstalledFontCollection installedFontCollection = new InstalledFontCollection();
// Get the array of FontFamily objects.
fontFamilies = installedFontCollection.Families;
// The loop below creates a large string that is a comma-separated
// list of all font family names.
int count = fontFamilies.Length;
for (int j = 0; j < count; ++j)
{
familyName = fontFamilies[j].Name;
familyList = familyList + familyName;
familyList = familyList + ", ";
}
// Draw the large string (list of all families) in a rectangle.
e.Graphics.DrawString(familyList, font, solidBrush, rectF);
Компиляция кода
Предыдущий пример предназначен для работы с Windows Forms и требует PaintEventArgs e
, который является параметром PaintEventHandler. Кроме того, следует импортировать System.Drawing.Text пространства имен.