Console程式幾乎是寫程式的起手式,很少一開始就直接寫視窗程式,但在Console上,要輸出複雜的畫面比較困難,往往都是簡單的文字輸出。

但在30年前,Windows才剛普及的年代,有時會看到Console上出現可以做到類Window介面的程式,另外以前在硬體廠上班時,也看過那些用VI寫程式的神人,終能把VI弄得跟IDE的畫面沒兩樣。

於是乎,我找了有沒有現成的套件,能讓我輕鬆在Console上輸出豐富的畫面,然後找到了套件:Spectre.Console

話不多說,先看簡單的範例:

using Spectre.Console;

// 使用彩色文字輸出
AnsiConsole.MarkupLine("[bold green]歡迎使用 Colorful Console 應用程式![/]");
AnsiConsole.MarkupLine("這是一個使用 [underline blue]Spectre.Console[/] 庫的範例。");
AnsiConsole.MarkupLine("讓我們來展示一些 [italic yellow]有趣[/] 的功能吧!\n");

而輸出如下:

另外它也可以輸出表格,對於顯示資料有需求的很有幫助:

// 建立一個表格
var table = new Table();
table.AddColumn("訂單編號");
table.AddColumn(new TableColumn("狀態").Centered());
table.AddColumn("金額");

table.AddRow("ORD-001", "[green]成功[/]", "$100.00");
table.AddRow("ORD-002", "[red]失敗[/]", "$50.00");
table.AddRow("ORD-003", "[yellow]處理中[/]", "$250.00");

// 加上邊框樣式
table.Border(TableBorder.Rounded);

AnsiConsole.Write(table);

結果如下:

另外也有類似圖表的功能:

var chart = new BarChart()
    .Width(60)
    .Label("[bold underline]每月銷售額[/]")
    .CenterLabel()
    .AddItem("一月", 150, Color.Red)
    .AddItem("二月", 200, Color.Green)
    .AddItem("三月", 180, Color.Yellow)
    .AddItem("四月", 220, Color.Blue)
    .AddItem("五月", 170, Color.Magenta);
AnsiConsole.Write(chart);

懷舊感滿滿的圖表出來了:

當然它的功能還有很多,有需要的可以參考官方文件。

參考資料