ПОНЯТНО О Visual Basic NET (том 2)

Шрифты


До сих пор мы писали на поверхности формы и элементов управления только теми шрифтами, что задавали в режиме проектирования (3.2.2 и 6.2.6). Покажем, как создавать собственные шрифты программным путем, в коде. Делается это аналогично созданию собственных перьев и кистей. Шрифт – это объект класса Font, входящего в пространство имен System.Drawing. Создадим один какой-нибудь шрифт:

    Dim Строгий_шрифт As New Font("Arial", 20, FontStyle.Bold)

Пояснения. Из десятка вариантов конструктора я выбрал вариант с 3 параметрами:

Первый параметр – взятое в кавычки название (гарнитура) одного из установленных на вашем компьютере шрифтов (Arial). Гарнитура определяет рисунок букв. Гарнитуры можно посмотреть, зайдя в режиме проектирования в свойство Font любого элемента управления. На вашем компьютере установлены шрифты гарнитур «Arial», «Times», «Courier» и как минимум нескольких других.

Второй параметр – размер шрифта (20). На единицах измерения размера шрифта я не останавливаюсь.

Третий параметр – начертание (стиль) шрифта (FontStyle). VB предложит вам на выбор несколько начертаний:



Regular

обычный

Bold

полужирный

Italic

курсив

Underline

подчеркнутый

Strikeout

перечеркнутый

Создадим проект с кнопками и меткой. Пусть при нажатии на первую кнопку пишется слово «Всегда!» на форме, а при нажатии на вторую – слова «Привет!» и «издалека» на метке (см. Рис. 12.7).

Рис. 12.7

Для этого понадобится такая программа:

Dim Строгий_шрифт As New Font("Arial", 20, FontStyle.Bold)

Dim Красивый_шрифт As New Font("Times", 80, FontStyle.Bold Or FontStyle.Italic)

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim Граф As Graphics = Me.CreateGraphics

        Граф.DrawString("Всегда!", Строгий_шрифт, Brushes.Black, 0, 50)

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click


        Dim Гр As Graphics = Label1.CreateGraphics
        Dim Т1 As New Point(40, 20)
        Dim Т2 As New Point(20, 40)
        Dim Кисть As New Drawing2D.LinearGradientBrush(Т1, Т2, Color.Blue, Color.Yellow)
        Гр.DrawString("Привет!", Красивый_шрифт, Кисть, 0, 0)
        Гр.DrawString("издалека", Строгий_шрифт, Brushes.Black, 300, 100)
End Sub
Пояснения. Стиль для красивого шрифта мы указали так:
FontStyle.Bold   Or   FontStyle.Italic
Это значит, что мы хотим, чтобы он был одновременно и полужирным, и курсивом. Если вы помните, то при помощи логической операции Or  мы точно так же в 7.8 задавали вид и поведение окна MsgBox. Несколько непривычное для нас применение логической операции Or.
Чтобы слово «Привет!» получилось полосатым, как на рисунке, я пишу это слово градиентной кистью, градиент для которой я определяю при помощи Точек Т1 и Т2.
Точки я задаю немного по-другому, чем делал это раньше. Я использую конструктор. У структур, как и у классов, есть конструкторы. Два параметра у конструктора Точки – это ее главные свойства X и Y. Их я и указал.
Задание 69.          
Начертите график функции  y = (sin x)/x   так, как он выглядит на Рис. 12.8. Координатные оси должны быть со стрелками. Указания: Максимальное значение Y равно 1, максимальное значение X на рисунке примерно равно 30. Задание выполняется по тому же принципу, что и Задание 47. Подробные пояснения смотрите в ответе.

Рис. 12.8

Содержание раздела