Об’ємний текст

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

Створимо проект в якому виведемо на форму текст з ефектами об’єму.

Для цього завантажимо Visual Basic, та створимо новий проект. За тип об’єму відповідатиме перемикач RadioButton, відображатись текст буде при виконанні події кліку по кнопці Button, ця ж кнопка буде очищувати форму.

Після створення проекту з панелі елементів керування переносимо на форму два перемикачі RadioButton та кнопку Button

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

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

Public Class Form1

 

    'Проект виводить на екран напис з ефектом об’ємного тексту

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

                            Handles MyBase.Load

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

        Me.Text = "Опуклий текст"

        Me.Width = 630

        Me.Height = 180

        Button1.Text = "Показати"

        RadioButton1.Text = "Опуклий текст"

        RadioButton2.Text = "Вдавлений текст"

    End Sub

 

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

                              ByVal e As System.EventArgs) Handles Button1.Click

        'Оголошуємо стиль пензля сірого кольору

        Dim sb As New SolidBrush(Color.Gray)

        'Оголошуємо стиль шрифту

        Dim f As New Font("Tahoma", 48, FontStyle.Bold)

        'Створюємо середовище для малювання

        Dim g As Graphics = CreateGraphics()

        'Оголошуємо текстові змінні, які потрібно вивести

        Dim text1 As String = "Опуклий текст"

        Dim text2 As String = "Вдавлений текст"

        'Перевіряємо стан кнопки:

        If Button1.Text = "Показати" Then

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

            Button1.Text = "Очистити"

            'Виводимо текст в залежності від обраного стилю:

            If RadioButton1.Checked = True Then

                'Виводимо напис сірим кольором

                g.DrawString(text1, f, sb, 10, 10)

                'Змінюємо колір пензля

                sb.Color = Color.White

                'Виводимо ще один напис поверх існуючого, іншим кольором

                'та зі зміщенням в декілька пікселів

                g.DrawString(text1, f, sb, 8, 8)

                'Звільняємо ресурси дл малювання

                g.Dispose()

            End If

 

            If RadioButton2.Checked = True Then

                'Цей ефект будуємо аналогічно,

                'лише зміщуємо другий напис в інщу сторону

                g.DrawString(text2, f, sb, 10, 10)

                sb.Color = Color.White

                g.DrawString(text2, f, sb, 12, 12)

                g.Dispose()

            End If

 

        ElseIf Button1.Text = "Очистити" Then

            Button1.Text = "Показати"

            'Очищуємо поле форми

            g.Clear(BackColor)

        End If

    End Sub

End Class

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

В проекті використано два кольори для тексту – білий(передній план) та сірий (тінь). Ці кольори можна змінювати на власний розсуд. Але використовуючи інші кольори ми втратимо ефект тиснення.

Приклад роботи програми наведено на рисунках нижче: