Почему параметр FontFamily объекта Font является строкой, а не перечислением?FontFamily question
ответ
FontFamily ссылается на название шрифта. Хотя вы могли бы использовать «monospace» или «serif», я бы не подумал, что это будет поддерживаться .Net.
Помните, что использование перечисления было бы невозможным. Перечисление представляет собой статическую функцию времени компиляции, что означает, что она не может «генерировать» динамическое перечисление из шрифтов в вашей системе. В самом деле, в том числе, что-то подобное на языке, вероятно, было бы плохой идеей. Даже если это было подтверждено, у машины пользователя не были бы такие же шрифты, как у вас - некоторые шрифты были бы неправильно включены в список, а некоторые исключены (потому что после компиляции enum становится «final»).
Enums - удобный магазин интегральных констант и НИЧЕГО еще. Каждый элемент в перечислении имеет удобное имя и значение, даже если вы не укажете его. Следующие два перечисления одинаковы.
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();
}
}
}
Поскольку Enum - это набор фиксированных значений, который заставляет повторно компилировать, когда он изменяется (и в этом случае это в конечном итоге означает: новый выпуск фреймворка).
Семейство шрифтов может быть изменено, а имеющиеся шрифты отличаются от хост-системы к системе хоста.
- 1. ColumnHeaderContainerStyle FontFamily
- 2. Почему мой FontFamily «Arial»?
- 3. WPF FontFamily Формат вопрос
- 4. Ссылка FontFamily в WPF
- 5. FontFamily issue in C#
- 6. Отладка FontFamily загружена?
- 7. Невозможно установить Fontfamily
- 8. ocaml pattern question question
- 9. sql question question
- 10. javascript click question question
- 11. order by question question
- 12. Perl modulo question question
- 13. Как отобразить FontFamily в Combobox?
- 14. Получить FontFamily из экземпляра шрифта
- 15. Изменить FontFamily для всех элементов
- 16. AutoSuggestBox FontFamily Консола не принимает
- 17. Как изменить fontfamily в 4.0.3?
- 18. Android fontFamily sans-serif-light
- 19. CSS FontFamily для Спарк FormItems
- 20. Изменение fontFamily на диаграмме ChartJS
- 21. Проверьте, является ли FontFamily TrueType
- 22. WPF custom FontFamily от сборки?
- 23. Вставьте значение FontFamily в SelectedItem
- 24. C# WPF Получение локализованного FontFamily
- 25. Serialize FontFamily в Windows Phone
- 26. свойство связывания FontFamily ViewModel в
- 27. WPF Custom Routed question question
- 28. TextBox-> FontFamily = ref new FontFamily ("Arial"); Дает мне Arial Narrow, не Arial
- 29. Auto_complete_for question
- 30. memystream question
дружеского совет: вы должны действительно Google этого типа материала первого - или по крайней мере, убедитесь, что вы точно понимаете *, что такое перечисление. – 2008-12-12 07:48:55