首页 > 编程语言 >一个库帮你轻松的创建漂亮的.NET控制台应用程序

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

时间:2024-04-29 12:22:31浏览次数:20  
标签: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);

项目源码地址

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

标签:AnsiConsole,项目,库帮,table,new,NET,控制台
From: https://www.cnblogs.com/chinasoft/p/18165403

相关文章

  • 【kubernetes】kubernetes二次开发
    Kubernetes源码二次开发Kubernetes源码二次开发通常涉及以下步骤:环境准备:安装和配置Go环境,确保Go版本与Kubernetes项目兼容。获取源码:从GitHub克隆Kubernetes仓库到本地。设置工作环境:通过make命令设置编译环境。修改源码:根据需求修改Kubernetes源码。编译:使......
  • 自动化测试数据生成:Asp.Net Core单元测试利器AutoFixture详解
    引言在我们之前的文章中介绍过使用Bogus生成模拟测试数据,今天来讲解一下功能更加强大自动生成测试数据的工具的库"AutoFixture"。什么是AutoFixture?AutoFixture是一个针对.NET的开源库,旨在最大程度地减少单元测试中的“安排(Arrange)”阶段,以提高可维护性。它的主要目标是让......
  • Asp .Net Core 系列:国际化多语言配置
    目录概述术语本地化器IStringLocalizer在服务类中使用本地化IStringLocalizerFactoryIHtmlLocalizerIViewLocalizer资源文件区域性回退配置CultureProvider内置的RequestCultureProvider实现自定义RequestCultureProvider使用Json资源文件设计原理IStringLocalizerFactory&......
  • Modbus转Profinet网关连接打印设备与PLC通讯
      Modbus转Profinet网关(XD-MDPN100)是一种能够实现Modbus协议和Profinet协议之间转换的设备。Modbus转Profinet网关可提供单个或多个RS485接口,使得不同设备之间可以顺利进行通信。当我们需要连接打印设备与PLC进行通讯时,Modbus转Profinet网关可以将打印设备与PLC之间建立起稳定......
  • Modbus转Profinet网关连接传感器与PLC通讯
    Modbus转Profinet网关(XD-MDPN100/300)是用于将Modbus协议和Profinet协议进行转换并进行通讯的设备。Modbus转Profinet网关可以实现Modbus和Profinet协议之间的相互转换,并自带网口和串口,既可实现协议的相互转换,也可实现接口的相互转换。当使用Modbus转Profinet网关连接传感器与PLC......
  • D - Grid and Magnet
    D-GridandMagnethttps://atcoder.jp/contests/abc351/tasks/abc351_d 思路定义输入矩阵元素值   smatrixeachcellcanhavethreepossiblevalues:       0-emtpyandnotmagnetfield       1-magnet       2-magnetfield输......
  • Ubuntu22.04 搭建Kubernetes 1.28版本集群
    依赖安装准备工作需要在所有节点上进行。安装ssh服务安装 openssh-serversudoapt-getinstallopenssh-server修改配置文件vim/etc/ssh/sshd_config找到配置项LoginGraceTime120PermitRootLoginprohibit-passwordStrictModesyes把 prohibit-password ......
  • fastreport .net打印普通报表
    fastreport.net打印普通报表前言:.net代码层先不记录在这,后续会单独写一篇博客来记录。直接在工具上进行功能点的实现一、效果图二、功能点分页分页小计金额大写三、功能点实现3.1分页这个直接用工具自带的page当前页和TotalPages总页数当前页和总页数是根据当前......
  • dotnet appsettings 配置文件读取
    Console.Config\Program.csusingMicrosoft.Extensions.Configuration;varbasePath=Directory.GetCurrentDirectory();varconfiguration=newConfigurationBuilder().SetBasePath(basePath)//设置基本路径.AddJsonFile("appsettings.json")//添......
  • .net core,.net 6使用SoapCore开发webservice接口,以及使用HttpClientFactory动态访问we
    1.使用soapCorenuget包 2.新建接口及实现2.1新建接口 2.2新建实现 2.3新建接收实体 2.4返回实体 3.接口注入使用  4.启动程序,直接访问对应的asmx地址  ......