Контурний текст

Текст, який виводиться на екран, за замовчуванням заповнений деяким кольором. Але якщо Вам потрібно вивести лише контур цього тексту, то можна скористатися класом DrawPath. Даний клас дозволяє створювати різні контури з фігур та текстів.

Створимо проект в якому виведемо лише контур напису при кліку на кнопці, також для порівняння при повторному натисненні кнопки виводитимемо той же напис, але на цей раз із суцільною заливкою та без контуру.

Отож, завантажуємо Visual Basic, створюємо новий проект, який називаємо Контурний текст. В режимі дизайнера форм, розміщуємо на формі елемент керування Button.

В результаті отримаємо форму наступного вигляду:

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

'Підключаємо бібліотеку стилів для малювання

Imports System.Drawing.Drawing2D

Public Class Form1

 

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

                           ByVal e As System.EventArgs) Handles MyBase.Load

        'Задаємо початкові властивості елементам керування

        Me.Text = "Контурний текст"

        Button1.Text = "Показати без заливки"

        Me.Width = 525

        Me.Height = 200

    End Sub

 

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

                              ByVal e As System.EventArgs) Handles Button1.Click

        'Створюємо траекторію для побудови контуру

        Dim pth As New GraphicsPath

        'Оголошуємо графічну змінну

        Dim g As Graphics = CreateGraphics()

        'Оголошуємо змінну в якій зберігатимемо текст, що виводиться

        Dim txt As String = "Зразок тексту"

        'Додаємо рядок в траекторію, та задаємо характеристики його відображення

        pth.AddString(txt, New FontFamily("Tahoma"), 0, 70, New Point(15, 15), _

                      StringFormat.GenericDefault)

        'Створюємо олівець обраного кольору та товщиною 2 пікселі

        Dim p As New Pen(Brushes.Tomato, 2)

        'Реалізуємо вибір побудови тексту

        If Button1.Text = "Показати без заливки" Then

            'Очищуємо фон

            g.Clear(BackColor)

            'Змінюємо напис на кнопці

            Button1.Text = "Показати без контуру"

            'Виводимо контурний текст

            g.DrawPath(p, pth)

            'Очищуємо траекторію

            pth.Reset()

        ElseIf Button1.Text = "Показати без контуру" Then

            Button1.Text = "Показати без заливки"

            g.Clear(BackColor)

            'Створюємо напис із суцільною заливкою

            g.FillPath(Brushes.Orange, pth)

            pth.Reset()

        End If

    End Sub

End Class 

Приклад досить простий для розуміння. Створюється контур pth, в який додається деякий текст. На екрані відображатимуться лише контури символів заданого тексту. Для порівняння виводимо ще раз той же самий текст, але на цей раз заповнений обраним кольором. Зміну типу тексту реалізуємо за допомогою кнопки керування.

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