NEWS

[C#] Thiết kế ứng dụng Console đẹp với thư viện Spectre.Console

[C#] Thiết kế ứng dụng Console đẹp với thư viện Spectre.Console
Đăng bởi: Thảo Meo - Lượt xem: 2121 16:16:51, 03/08/2023DEVEXPRESS   In bài viết

Xin chào các bạn, bài viết hôm nay mình hướng dẫn các bạn cách thiết kế ứng dụng Console đẹp với thư viện Spectre.Console trên C#.

[C#] Building beautiful console applications 

Dưới đây, là hình ảnh demo ứng dụng:

console_app_beauty

Spectre.Console cung cấp cho chúng ta rất nhiều wiget: table, ruler, calendar, procressabar, chart...

Giúp chúng ta dễ dàng định dạng chữ trong màn hình console như: màu chữ, tô đậm, in nghiêng, gạch chân...

Chi tiết các bạn có thể đọc tài liệu của thư viện tại đường dẫn:

https://spectreconsole.net/quick-start

Cài đặt thư viện từ Nuget:

dotnet add package Spectre.Console

Source code C#:

using Spectre.Console;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Rule = Spectre.Console.Rule;

namespace BeautiConsole
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.OutputEncoding = Encoding.UTF8;
            //  AnsiConsole.Markup("[underline red]Hello[/] [bold yellow]LAPTRINHVB.NET[/]!");
            //AnsiConsole.Write(
            //  new Panel(new Text("Some fictitious company HR").Centered())
            //      .Expand()
            //      .SquareBorder()
            //      .BorderStyle(new Style(Color.Cornsilk1))
            //      .Header("[underline red]Hello[/] [bold yellow]LAPTRINHVB.NET[/]!")
            //      .HeaderAlignment(Justify.Center));
            AnsiConsole.Progress()
    .Start(ctx =>
    {
        // Define tasks
        var task1 = ctx.AddTask("[green]Reticulating splines[/]");
        var task2 = ctx.AddTask("[green]Folding space[/]");

        while (!ctx.IsFinished)
        {
            task1.Increment(1.5);
            task2.Increment(0.5);
        }
    });

            AnsiConsole.Write(
    new FigletText("Hello LAPTRINHVB.NET")
        .LeftJustified()
        .Color(Color.Red));
            AnsiConsole.Write(new BreakdownChart()
    .Width(60)
    // Add item is in the order of label, value, then color.
    .AddItem("SCSS", 80, Color.Red)
    .AddItem("HTML", 28.3, Color.Blue)
    .AddItem("C#", 22.6, Color.Green)
    .AddItem("JavaScript", 6, Color.Yellow)
    .AddItem("Ruby", 6, Color.LightGreen)
    .AddItem("Shell", 0.1, Color.Aqua));


            AnsiConsole.WriteLine();
            AnsiConsole.Write(new BarChart()
               .Width(60)
               .Label("[green bold underline]List programming 2023[/]")
               .CenterLabel()

               .AddItem("C#", 12, Color.Yellow)
               .AddItem("VB.NET", 54, Color.Green)
               .AddItem("Flutter", 33, Color.Red));
            AnsiConsole.WriteLine();
            var rule = new Rule("[red]Danh sách nhân viên HTTPS://LAPTRINHVB.NET[/]");
            AnsiConsole.Write(rule);
            AnsiConsole.Status()
                .Spinner(Spinner.Known.Star)
                .Start("Đang tải dữ liệu...", ctx => {
                    Thread.Sleep(1000);
                });
            AnsiConsole.WriteLine();


            var table = new Table().Centered();

            AnsiConsole.Live(table)
                .Start(ctx =>
                {
                    table.AddColumn("STT");
                    ctx.Refresh();              

                    table.AddColumn("Họ và tên");
                    ctx.Refresh();          
                    table.AddColumn("Địa chỉ");
                    ctx.Refresh();

                    table.AddRow("1", "Nguyễn Thảo", "Bà Rịa Vũng Tàu");
                    table.AddRow("2", "Nguyễn Đình Tuyên", "Quảng Bình");
                    table.AddRow("3", "Trịnh Quốc Khang", "Đồng Nai");
                    table.AddRow("4", "[red bold]???? Hoàng Thị Thảo[/]", "[blue italic]Hồ Chí Minh[/]");
                    table.AddRow("5", "Cái Trí Minh", "Quảng Trị");
                    table.AddRow("5", "Võ Sơn Băng", "Kiên Giang");

                });

           

            var rule2 = new Rule("[red]LỊCH THÁNG[/]");
            AnsiConsole.Write(rule2);
            var calendar = new Calendar(2023, 08).Centered();
           
            AnsiConsole.Write(calendar);
            Console.Read();
        }
    }
}

Thanks for watching!

DOWNLOAD SOURCE

THÔNG TIN TÁC GIẢ

BÀI VIẾT LIÊN QUAN

[C#] Thiết kế ứng dụng Console đẹp với thư viện Spectre.Console
Đăng bởi: Thảo Meo - Lượt xem: 2121 16:16:51, 03/08/2023DEVEXPRESS   In bài viết

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp
.