| 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 | < Назад | Оглавление | Далее > |