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

简介: 一个库帮你轻松的创建漂亮的.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]!!![/]");

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推荐或自荐(让优秀的项目和框架不被埋没🤞)。

相关文章
|
2天前
|
C#
一个.NET开源、轻量级的运行耗时统计库 - MethodTimer
一个.NET开源、轻量级的运行耗时统计库 - MethodTimer
|
23天前
|
安全 Java 网络安全
Android远程连接和登录FTPS服务代码(commons.net库)
Android远程连接和登录FTPS服务代码(commons.net库)
19 1
|
2天前
|
开发框架 安全 .NET
.NET使用Moq开源模拟库简化单元测试
.NET使用Moq开源模拟库简化单元测试~
|
2天前
|
人工智能 自然语言处理 API
适用于 .NET 稳定的官方OpenAI库
适用于 .NET 稳定的官方OpenAI库
|
27天前
|
SQL XML 关系型数据库
入门指南:利用NHibernate简化.NET应用程序的数据访问
【10月更文挑战第13天】NHibernate是一个面向.NET的开源对象关系映射(ORM)工具,它提供了从数据库表到应用程序中的对象之间的映射。通过使用NHibernate,开发者可以专注于业务逻辑和领域模型的设计,而无需直接编写复杂的SQL语句来处理数据持久化问题。NHibernate支持多种数据库,并且具有高度的灵活性和可扩展性。
39 2
|
1月前
|
网络协议 Unix Linux
一个.NET开源、快速、低延迟的异步套接字服务器和客户端库
一个.NET开源、快速、低延迟的异步套接字服务器和客户端库
|
1月前
|
存储 消息中间件 NoSQL
Redis 入门 - C#.NET Core客户端库六种选择
Redis 入门 - C#.NET Core客户端库六种选择
56 8
|
1月前
|
开发框架 .NET API
Windows Forms应用程序中集成一个ASP.NET API服务
Windows Forms应用程序中集成一个ASP.NET API服务
86 9
|
1月前
|
存储 开发框架 .NET
.NET 8 实现无实体库表 API 部署服务
【10月更文挑战第12天】在.NET 8中,可通过以下步骤实现无实体库表的API部署:首先安装.NET 8 SDK及开发工具,并选用轻量级Web API框架如ASP.NET Core;接着创建新项目并设计API,利用内存数据结构模拟数据存储;最后配置项目设置并进行测试与部署。此方法适用于小型项目或临时解决方案,但对于大规模应用仍需考虑持久化存储以确保数据可靠性与可扩展性。
|
2月前
|
开发框架 .NET C#
C# 一分钟浅谈:第一个 C# 控制台应用程序
【9月更文挑战第1天】C# 是一种现代化的、面向对象的编程语言,广泛应用于桌面应用、Web 应用和游戏开发等领域。本文详细介绍如何创建第一个 C# 控制台应用程序,包括使用 Visual Studio 和 .NET SDK 的步骤,并解析常见问题及其解决方法,如控制台窗口立即关闭、编译错误和运行时错误等。通过实践,你将掌握 C# 控制台应用的基础知识,为进一步学习打下坚实基础。
254 48