一個庫幫你輕鬆的創建漂亮的.NET控制檯應用程序

前言

做過.NET控制檯應用程序的同學應該都知道原生的.NET控制檯應用程序輸出的內容都比較的單調,假如要編寫漂亮且美觀的控制檯輸出內容或者樣式可能需要花費不少的時間去編寫代碼和調試。今天大姚給大家分享一個.NET開源且免費的類庫幫你輕鬆的創建漂亮、美觀的.NET控制檯應用程序:Spectre.Console。

項目特性

  • 該庫有着豐富的組件,其中包括表格、網格、面板、日曆、以及畫布圖像等。
  • 支持文本樣式的最常見的 SRG 參數,如粗體、暗淡、斜體、下劃線、刪除線和閃爍文本。
  • 支持終端中的3/4/8/24位顏色。該庫將檢測當前終端的功能,並根據需要降低顏色。

項目源代碼

新建控制檯應用

創建一個名爲:SpectreExercise的控制檯應用。

安裝項目的NuGet包

在NuGet包管理器中搜索:Spectre.Console 點擊安裝。

控制檯文字輸出

原生自帶的

Console.WriteLine("你好追逐時光者!!!");

類庫設置的

AnsiConsole.Markup("[underline red]你好[/][Blue]追逐時光者[/][DarkMagenta]!!![/]");

類庫文檔顏色選擇表:https://spectreconsole.net/appendix/colors

table表格輸出

            #region 創建表
            // 創建表
            var table = new Table();

            //添加一些列
            table.AddColumn("[red]編號[/]");
            table.AddColumn("[green]姓名[/]");
            table.AddColumn("[blue]年齡[/]");

            //添加一些行
            table.AddRow("1", "追逐時光者", "20歲");
            table.AddRow("2", "大姚", "22歲");
            table.AddRow("3", "小袁", "18歲");
            table.AddRow("4", "小明", "23歲");

            // 將表格渲染到控制檯
            AnsiConsole.Write(table);
            #endregion

條形圖

使用 BarChart 將條形圖呈現到控制檯。

            #region 條形圖

            AnsiConsole.Write(new BarChart()
    .Width(60)
    .Label("[green bold underline]水果數量[/]")
    .CenterLabel()
    .AddItem("蘋果", 12, Color.Yellow)
    .AddItem("西瓜", 54, Color.Green)
    .AddItem("香蕉", 33, Color.Red)
    .AddItem("芒果", 55, Color.Blue));

            #endregion

日曆

            //日曆
            var calendar = new Calendar(2024, 5);
            AnsiConsole.Write(calendar);

佈局

使用 Layout 在終端中佈局小部件。

#region 佈局

// Create the layout
var layout = new Layout("Root")
    .SplitColumns(
        new Layout("Left"),
        new Layout("Right")
            .SplitRows(
                new Layout("Top"),
                new Layout("Bottom")));

// Update the left column
layout["Left"].Update(
    new Panel(
        Align.Center(
            new Markup("[blue]你好![/]"),
            VerticalAlignment.Middle))
        .Expand());

// Render the layout
AnsiConsole.Write(layout);

#endregion

規則水平線

            var rule = new Rule("[red]Hello[/]");
            AnsiConsole.Write(rule);

            var ruleLeft = new Rule("[blue]Hello[/]");
            ruleLeft.Justification = Justify.Left;
            AnsiConsole.Write(ruleLeft);

            var ruleRight = new Rule("[yellow]Hello[/]");
            ruleRight.Justification = Justify.Right;
            AnsiConsole.Write(ruleRight);

項目源碼地址

更多項目實用功能和特性歡迎前往項目開源地址查看👀,別忘了給項目一個Star支持💖。

優秀項目和框架精選

該項目已收錄到C#/.NET/.NET Core優秀項目和框架精選中,關注優秀項目和框架精選能讓你及時瞭解C#、.NET和.NET Core領域的最新動態和最佳實踐,提高開發工作效率和質量。坑已挖,歡迎大家踊躍提交PR推薦或自薦(讓優秀的項目和框架不被埋沒🤞)。

DotNetGuide技術社區交流羣

  • DotNetGuide技術社區是一個面向.NET開發者的開源技術社區,旨在爲開發者們提供全面的C#/.NET/.NET Core相關學習資料、技術分享和諮詢、項目框架推薦、求職和招聘資訊、以及解決問題的平臺。
  • 在DotNetGuide技術社區中,開發者們可以分享自己的技術文章、項目經驗、學習心得、遇到的疑難技術問題以及解決方案,並且還有機會結識志同道合的開發者。
  • 我們致力於構建一個積極向上、和諧友善的.NET技術交流平臺。無論您是初學者還是有豐富經驗的開發者,我們都希望能爲您提供更多的價值和成長機會。

歡迎加入DotNetGuide技術社區微信交流羣👪

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章