Иллюстрированный самоучитель по VB.NET


         

вывод всех шрифтов в системе


Пример: вывод всех шрифтов в системе

Для демонстрации вывода текста была написана программа, которая воспроизводит в графическом поле все установленные шрифты с указанием имен (попутно мы столкнулись с проблемой, описанной в конце раздела). Программа состоит из нестандартного элемента и формы с прокруткой (рис. 8.24).

Рис. 8.24. Вывод списка установленных шрифтов в форме с прокруткой

Список системных шрифтов возвращается методом InstalledFontCollection пространства имен System.Drawing.Text. Этот метод возвращает объект класса Sys-tem.Drawing.Text.FontCollection. Объекты, входящие в коллекцию FontCollection, представляют не шрифты, а семейства шрифтов (такие, как Arial или Courier). Вы должны выбрать из семейства нужный шрифт. Некоторые шрифты не имеют обычного начертания, поскольку их семейство состоит только из курсивных, узких, тонких и других модифицированных начертаний. Следовательно, в программе должен присутствовать фрагмент вида

For Each aFontFamily In TheFonts.Families

If aFontFamily.IsStyleAvailable(FontStyle.Regular) Then

Мы решили оформить программу в виде специализированного графического поля (элемент PictureBox), которое размещается на форме при загрузке. При этом на форме также включаются обе полосы прокрутки:

Private Sub Form1_Load(ByVal sender As System.Object._

ByVal e As System. EventArgs)Hand.les MyBase.Load

Me.VScroll = True

Me.HScroll = True

Me.AutoScroll = True

FontPictureBoxl.Left = 0

FontPictureBoxl.Top = 0

End Sub

Ниже приведен полный код специализированного графического поля:

1 Public Class FontPictureBox

2 Inherits System.Windows.Forms.PictureBox

3 Protected Overrides Sub OnPaint(ByVal pe As _

System.Windows.Forms.PaintEventArgs)

4 ' Всегда вызывайте Mybase.OnPaint!

5 MyBase.OnPaint(pe)

6 DisplayFonts(pe.Graphics)

7 End Sub

8 Private Sub OisplayFonts(ByVal g As Graphics)

9 ' HE РАБОТАЕТ: Dim g As Graphics = Me.CreateGraphics()

10 Dim aFontFamily As FontFamily

11 Dim curx.curY As Single

Содержание  Назад  Вперед