18/03/2021, 09:46

[C#] Tạo hiệu ứng Flash Animated Text Label trên Winform

Xin chào các bạn, bài viết hôm nay mình sẽ chia sẽ đến các bạn đoạn code tạo hiệu ứng Text Flash Label trên lập trình C#, Winform. Dưới đây, là giao diện demo ứng dụng hiệu ứng Flash Text: Ở bài viết này chúng ta sẽ sử dụng Timer và các hàm đồ họa ...

Xin chào các bạn, bài viết hôm nay mình sẽ chia sẽ đến các bạn đoạn code tạo hiệu ứng Text Flash Label trên lập trình C#, Winform.

Dưới đây, là giao diện demo ứng dụng hiệu ứng Flash Text:

animated_text_csharp

Ở bài viết này chúng ta sẽ sử dụng Timer và các hàm đồ họa graphics để tạo hiệu ứng.

Full source code c#:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace AnimatedText
{
    public partial class Form1 : Form
    {
        int timer_interval = 15;
        int current_gradient_shift = 10;
        int gradiant_step = 5;
        public Form1()
        {
            InitializeComponent();
        }
      
        private void timer1_Tick(object sender, EventArgs e)
        {

            Graphics grafx = CreateGraphics();
            Font fnt = new Font("Tahoma", 30, FontStyle.Bold, GraphicsUnit.Point);
            string start_text = "HELLO LAPTRINHVB";
            SizeF fnt_size = new SizeF(grafx.MeasureString(start_text, fnt));

            PointF ptf_text_start = new PointF((System.Convert.ToSingle(ClientSize.Width - fnt_size.Width)) / 2, (System.Convert.ToSingle(ClientSize.Height - fnt_size.Height)) / 2);

            PointF ptf_gradient_start = new PointF(0, 0);
            PointF ptf_gradient_end = new PointF(current_gradient_shift, 130);
            LinearGradientBrush gradient_brush = new LinearGradientBrush(ptf_gradient_start, ptf_gradient_end, Color.Orange, BackColor);
            grafx.DrawString(start_text, fnt, gradient_brush, ptf_text_start);
            grafx.Dispose();

            current_gradient_shift += gradiant_step;
            if (current_gradient_shift == 500)
            {
                gradiant_step = -5;
            }
            else if (current_gradient_shift == -50)
            {
                gradiant_step = 5;
            }
        }



        private void Form1_Load(object sender, EventArgs e)
        {
            timer1.Start();
            timer1.Interval = timer_interval;
        }
    }
}

Thanks for watching!

DOWNLOAD SOURCE

Tags: animated text c#
0