写点什么

一个库帮你轻松的创建漂亮的.NET 控制台应用程序

  • 2024-04-29
    福建
  • 本文字数:1867 字

    阅读完需:约 6 分钟

前言


做过.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 layoutvar layout = new Layout("Root")    .SplitColumns(        new Layout("Left"),        new Layout("Right")            .SplitRows(                new Layout("Top"),                new Layout("Bottom")));
// Update the left columnlayout["Left"].Update(    new Panel(        Align.Center(            new Markup("[blue]你好![/]"),            VerticalAlignment.Middle))        .Expand());
// Render the layoutAnsiConsole.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 支持💖。


文章转载自:追逐时光者

原文链接:https://www.cnblogs.com/Can-daydayup/p/18162360

体验地址:http://www.jnpfsoft.com/?from=infoq

用户头像

还未添加个人签名 2023-06-19 加入

还未添加个人简介

评论

发布
暂无评论
一个库帮你轻松的创建漂亮的.NET控制台应用程序_MySQL_快乐非自愿限量之名_InfoQ写作社区