FontFamily относится к названию шрифта. Хотя вы можете использовать «monospace» или «serif», я не думаю, что это будет поддерживаться .Net.
Помните, использование enum было бы невозможно. Перечисление - это статическая функция времени компиляции, которая означает, что она не может «генерировать» перечисление динамически из шрифтов вашей системы. В самом деле, включение чего-либо такого специфического в язык, вероятно, было бы плохой идеей. Даже если бы это было поддержано, на компьютере пользователя не было бы таких же шрифтов, как у вас - некоторые шрифты были бы неправильно включены в список, а некоторые исключены (потому что после компиляции enum становится 'final').
Перечисления - это удобный накопитель целочисленных констант и НИЧЕГО. Каждый элемент в перечислении имеет удобное имя и значение, даже если вы его не указали. Следующие два перечисления одинаковы.
public enum MyEnum
{
A = 1,
B = 2
}
public enum FooEnum
{
A,
B
}
И есть еще две проблемы: имена перечислений не могут содержать пробелов, в которых имена шрифтов могут. Получение полей из перечисления не является тривиальной задачей (требуется много кода для отражения).
Следующий код даст вам список шрифтов (вам нужно добавить System.Drawing в качестве ссылки):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing.Text;
using System.Drawing;
namespace ConsoleApplication19
{
class Program
{
static void Main(string[] args)
{
InstalledFontCollection ifc = new InstalledFontCollection();
foreach (FontFamily o in ifc.Families)
{
Console.WriteLine(o.Name);
}
Console.ReadLine();
}
}
}