Градієнт та візерунок

В попередніх прикладах ми використовували алгоритми роботи з рядками, їх можна застосовувати, наприклад, для виведення заголовку форми, де не можна змінити розмір, шрифт та колір тексту. В наступних статтях розглянемо приклади створення більш художніх текстових написів. Для цього використаємо можливості Visual Basic опрацьовувати графіку. Більш детально, робота з графікою буде розглядатися в наступних розділах сайту, а в даній задачі використаємо елементарні методи роботи з текстом.

Для прикладу створимо проект в якому виведемо два текстових написи, та заповнимо один з них градієнтною заливкою, а інший візерунком у вигляді цеглинок.

Для початку завантажимо Visual Studio 2010 та обиремо пункт меню Файл – Создать проект (File | New | Project).  У наступному вікні New Project обираємо пункт Visual Basic, а потім в області шаблонів (середня колонка) обираємо шаблон (Templates) Windows Forms Application. В якості назви проекту введемо ім’я Градієнт та візерунок і натиснемо кнопку ОК.

В даному проекті не будемо використовувати жоден з елементів керування, текстові написи просто виведемо в полі форми, використовуючи подію створення форми Form1_Paint:

 

Ще, для використання градієнтів та заливки візерунків, нам потрібно підключити бібліотеку для роботи зі вказаними стилями. Для цього достатньо на початку програми дописати стрічку імпорту відповідної бібліотеки:

Imports System.Drawing.Drawing2D

Повний лістинг проекту наведено нижче:

 'Для початку необхідно підключити бібліотеку для роботи з візерунками:

Imports System.Drawing.Drawing2D

Public Class Form1

    'Створимо декілька глобальних змінних:

    'Змінна, яка зберігатиме значення шрифту:

    Dim f As Font = New Font("Tahoma", 72.0F)

    'Змінні для зберігання тексту, який виводитимемо:

    Dim sBrick As String = "Цеглинки"

    Dim sGradient As String = "Градієнт"

 

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _

                           Handles MyBase.Load

        'Задаємо початкові властивості форми:

        Me.Text = "Градієнт та візерунок"

        Me.Width = 500

        Me.Height = 300

    End Sub

    Private Sub Form1_Paint(ByVal sender As System.Object, _

                            ByVal e As System.Windows.Forms.PaintEventArgs) _

                            Handles MyBase.Paint

        'Створимо полотно для малювання на формі:

        Dim g As Graphics = e.Graphics

        'Створимо новий пензель у вигляді червоних цеглинок на білому фоні:

        Dim hbr As New HatchBrush(HatchStyle.HorizontalBrick, Color.White, Color.Tomato)

        'Використовуючи створений пензель виведемо в форму відформатований текст:

        g.DrawString(sBrick, f, hbr, 0, 0)

        'Створимо ще один пензель, але на цей раз у вигляді градієнту:

        Dim rect As New Rectangle(10, 50, ClientSize.Width, ClientSize.Height)

        Dim lgrb As New LinearGradientBrush(rect, Color.Violet, Color.SkyBlue, _

                                            LinearGradientMode.BackwardDiagonal)

        'Виведемо другу текстову змінну з використанням градієнту:

        g.DrawString(sGradient, f, lgrb, 0, 100)

    End Sub

End Class

 Програма матиме наступний вигляд: