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

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

时间:2024-09-13 22:26:06浏览次数:12  
标签:AnsiConsole Write 库帮 table new NET 控制台

前言

做过.NET控制台应用程序的同学应该都知道原生的.NET控制台应用程序输出的内容都比较的单调,假如要编写漂亮且美观的控制台输出内容或者样式可能需要花费不少的时间去编写代码和调试。今天大姚给大家分享一个.NET开源且免费的类库帮你轻松的创建漂亮、美观的.NET控制台应用程序:Spectre.Console。

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

项目特性

  • 该库有着丰富的组件,其中包括表格、网格、面板、日历、以及画布图像等。
  • 支持文本样式的最常见的 SRG 参数,如粗体、暗淡、斜体、下划线、删除线和闪烁文本。
  • 支持终端中的3/4/8/24位颜色。该库将检测当前终端的功能,并根据需要降低颜色。

项目源代码

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

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

新建控制台应用

创建一个名为:SpectreExercise的控制台应用。

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

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

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

安装项目的NuGet包

在NuGet包管理器中搜索:Spectre.Console 点击安装。

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

控制台文字输出

原生自带的

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

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

类库设置的

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

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

  • 类库文档颜色选择表:https://spectreconsole.net/appendix/colors

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

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

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

条形图

使用 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

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

日历

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

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

布局

使用 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

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

规则水平线

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);

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

项目源码地址

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

标签:AnsiConsole,Write,库帮,table,new,NET,控制台
From: https://blog.51cto.com/u_13625604/12008717

相关文章

  • 使用NSSM把.Net Core部署至 Windows 服务
    1、官网http://www.nssm.cc/,下载地址http://www.nssm.cc/download2、下载后解压到自己喜欢的目录如:F:\work\nssm-2.24\win643、以管理员权限打开命令行工具,切换到nssm.exe所在路径,运行nssminstall,打开程序配置界面4、选择要部署的exe文件指定监听地址和端口如:dockerDemo.e......
  • UWP 通过 .NET 9 和Native AOT 的支持实现 UWP 应用的现代化
    微软(9月11日)发布博文,微软正在预览对.NET9的UWP(通用Windows平台)支持,为现有UWP开发人员提供一条使用最新的.NET和本机AOT实现其应用程序现代化的途径。这样做是因为该公司敦促开发人员切换到WindowsAppSDK和WinUI3,可以让现有UWP开发者利用最新.NET和Nativ......
  • 什么是 Rainbond?打破 Kubernetes 的复杂性
    近年来,随着云原生技术的快速发展,Kubernetes已经成为容器编排的标准。然而,尽管Kubernetes功能强大,它的复杂性也成为了众多开发者和运维人员的一大挑战。对于那些希望专注于应用开发的团队来说,学习和管理Kubernetes可能是一个高昂的学习成本,尤其是在中小企业中,开发者并没有足够......
  • 爆改YOLOv8|使用MobileNetV4替换yolov8的Backbone
    1,本文介绍MobileNetV4是最新的MobileNet系列模型,专为移动设备优化。它引入了通用反转瓶颈(UIB)和MobileMQA注意力机制,提升了推理速度和效率。通过改进的神经网络架构搜索(NAS)和蒸馏技术,MobileNetV4在多种硬件平台上实现了高效和准确的表现,在ImageNet-1K数据集上达到87%......
  • demo:tvm优化resnet50 llvm后端cpu上推理
    这是一个完整的例子。使用预训练的resnet50模型,经过tvm优化调整,target=llvm,在cpu上进行推理。最后打印结果是1这个索引代表goldfish importonnxfromtvm.contrib.downloadimportdownload_testdatafromPILimportImageimportnumpyasnpimporttvm.relayasrel......
  • io.netty.util.internal.PlatformDependent#DIRECT_MEMORY_COUNTER
    定时输出 DIRECT_MEMORY_COUNTER,可以监控应用直接内存的使用情况。 PlatformDependent.DIRECT_MEMORY_COUNTER是一个用于跟踪和统计直接内存使用情况的计数器。在Java中,直接内存是指通过ByteBuffer.allocateDirect()方法分配的内存,这种内存不受Java堆内存大小的限制,而是受操......
  • 为什么那么多开源软件都用netty来做网络通信编程框架?
     1、用netty来做网络通信编程框架而不是我们自己去基于JDKNIO来编程的好处有如下这些:(1)、netty支持常见的应用层协议(如:HTTP、FTP、DNS等),还可以支持自定义协议;(2)、netty可以自动解决网络编程当中的粘包与半包问题;(3)、netty还可以支持流量整形;(4)、netty对于网络通信当中......
  • Kubernetes部署jenkins
    目录配置存储方式创建命名空间创建RBAC权限创建无头服务创建有状态服务创建ingress部署配置存储方式本次使用NFS作为存储,请确保提前部署好storageClass。创建命名空间kubectlcreatensops创建RBAC权限#serviceaccountapiVersion:v1kind:ServiceAccountmetadata:......
  • 工具分享 | 24年最新AWVS/Acunetix Premium V24.8高级版漏洞扫描器(最新版)Windows/Li
    前言AcunetixPremium是一种Web应用程序安全解决方案,用于管理多个网站、Web应用程序和API的安全。集成功能允许您自动化DevOps和问题管理基础架构。AcunetixPremium:全面的Web应用程序安全解决方案Web应用程序对于企业和组织与客户、合作伙伴和员工的联系至关......
  • 刷新页面后,让控制台的js代码继续执行
    1.必要的知识prompt()弹出对话框,获取用户输入的文本setTimeout(,)延迟执行函数write()可向指定对象写入html代码或者js代码with()设定代码的作用域 2.大致框架vartimeout=prompt("设置刷新时间");current=location.href;if(timeout>0){......