首页 > 编程语言 >漂亮的.NET控制台应用程序类库--Spectre.Console

漂亮的.NET控制台应用程序类库--Spectre.Console

时间:2024-05-06 20:57:24浏览次数:29  
标签:类库 Console AnsiConsole -- 项目 table new 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);

项目源码地址

更多项目实用功能和特性欢迎前往项目开源地址查看

标签:类库,Console,AnsiConsole,--,项目,table,new,NET,控制台
From: https://www.cnblogs.com/mq0036/p/18175919

相关文章

  • A1/2/3 Balanced Unshuffle
    A1A2A3这个是比赛中我为队贡献的最有价值的一题,写一下吧。以下就是我的思考过程。A1别人做的。但是签到,略。A2,A3因为A2,A3方法差不多,就直接说\(\mathcal{O}(n)\)的做法。我们来研究一个例子((()))()(())。他的前驱为((()()))()()。我们能得到的消息有,Prefixbal......
  • 整体开发流程
    1、需求阶段需求调研MRD产出收集需求,理解需求需求评审1、PRD评审RD与PM一起参与需求评审,要清楚的知道需求的背景和收益,如没有收益需要提出挑战。业务提出的需求,要让业务一起参与。对开发点进行分析和讨论。对不合理点要主动提出,尽可能的提出解决的建议。任何需求RD同学......
  • 插入排序
    插入排序简单来说假设数组第一个元素为一个有序序列然后将后面的无序序列依次与第一个元素比较更具大小决定待插入元素插入的位置。、、、//插入排序是吧无序序列中的元素依次插入到有序序列中,一般是从有序序列的尾部开始比较voidInsertSort(intbuf[10],intbufsize){......
  • 大数据面试SQL每日一题系列:最高峰同时在线主播人数。字节,快手等大厂高频面试题
    大数据面试SQL每日一题系列:最高峰同时在线主播人数。字节,快手等大厂高频面试题之后会不定期更新每日一题sql系列。SQL面试题每日一题系列内容均来自于网络以及实际使用情况收集,如有雷同,纯属巧合。1.题目问题1:如下为某直播平台各主播的开播及关播时间数据明细,现在需要计算该平......
  • unserialize-基于Pikachu的学习
    php反序列化PHP反序列化漏洞详解(万字分析、由浅入深)_php反序列化漏洞原理-CSDN博客PHP反序列化基础-HelloCTF(hello-ctf.com)PHP反序列化漏洞的原理及复现-FreeBuf网络安全行业门户原理:php程序为了保存和转储对象,提供了序列化的方法。php序列化是为了在程序运行的过程......
  • Dash 2.17版本新特性介绍
    本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/dash-master大家好我是费老师,不久前Dash发布了其2.17.0版本,执行下面的命令进行最新版本Dash的安装:pipinstalldash-U2.17版本中新增了多项重要的新功能,使得我们在开发Dash应用功能时更加的得心应......
  • 对字符串A进行处理,参照字符串B,只有字符串B中的字母在字符串A存在,则不分大小写,从字符串
    /**@filename: main.c@brief实现对字符串A进行处理,参照字符串B,只有字符串B中的字母在字符串A存在,则不分大小写,从字符串A中删除@[email protected]@date2024/06/[email protected]:版本@property:属性介绍@note补充注意说明CopyRight(c)2023-2024RISE......
  • C#.NET体系图文概述—2024最全总结
    C#是一种简单、现代、面向对象和类型安全的编程语言。。.NET是由Microsoft创建的开发平台,平台包含了语言规范、工具、运行,支持开发各种应用,如Web、移动、桌面等。.NET框架有多个实现,如.NETFramework、.NETCore(及后续的.NET5+版本),以及社区版本Mono。除此以外,C#.NET体系还......
  • CyberRT_record解析代码走读
    共享内存共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机......
  • 幂等设计
    分布式幂等问题解决方案三部曲  https://mp.weixin.qq.com/s/3PAM2bSFFaeIBCWMc_pftQ   其它补充 服务端生成流水号来控制幂等性本身是一个常见的做法,并且在很多场景下是完全可行的。这样做可以确保每个请求都有一个全局唯一的标识,从而帮助识别和处理重复请求。......