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

Сайт управляется системой uCoz