netlib.narod.ru | < Назад | Оглавление | Далее > |
Свойство Families и метод GetFamilies класса FontFamilies — это не единственные способы получения массива гарнитур. В пространстве имен System.Drawing.Text есть абстрактный класс FontCollection, от которого наследуются два других класса: InstalledFontCollection и PrivateFontCollection.
FontCollection реализует только одно свойство:
Свойство FontCollection
Тип | Свойство | Доступ |
FontFamily[] | Families | Чтение |
Это свойство — которое не является статическим — наследуется как InstalledFontCollection, так и PrivateFontCollection. Приведенная ниже программа переопределяет метод GetFontFamilyArray программы FamiliesList, помещая в него код, который создает экземпляр класса InstalledFontCollection и использует его свойство Families для получения массива гарнитур.
InstalledFontsList.cs
//--------------------------------------------------- // InstalledFontsList.cs (C) 2001 by Charles Petzold //--------------------------------------------------- using System; using System.Drawing; using System.Drawing.Text; using System.Windows.Forms; class InstalledFontsList: FamiliesList { public new static void Main() { Application.Run(new InstalledFontsList()); } public InstalledFontsList() { Text = "InstalledFontCollection List"; } protected override FontFamily[] GetFontFamilyArray(Graphics grfx) { FontCollection fc = new InstalledFontCollection(); return fc.Families; } }
Выводит эта программа тоже самое, что и FamiliesList.
Когда вы создаете экземпляр класса PrivateFontCollection, он не содержит гарнитур. Вы добавляете шрифты к коллекции, используя следующие два метода:
Методы PrivateFontCollection (выборочно)
void AddFontFile(string strFilename) |
void AddMemoryFont(IntPtr pFont, int iLength) |
Эти методы используются приложениями, включающими собственные специализированные шрифты. После создания объекта PrivateFontCollection и вызова этих методов приложение может через свойство Families получить массив объектов FontFamily, пригодный для создания объектов Font. Или (если программа знает, какие гарнитуры включены в коллекцию) можно применить третий конструктор FontFamily (см. список в разделе «Новые шрифты из FontFamily») для создания объектов FontFamily на основе шрифтовых файлов этой коллекции.
netlib.narod.ru | < Назад | Оглавление | Далее > |