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

net · 浏览次数 : 5

小编点评

**项目代码** ```csharp using Spectre.Console; using Spectre.Console.Layout; namespace ConsoleApp { class Program { static void Main() { // 创建日历对象 var calendar = new Calendar(2024, 5); // 打印日历 AnsiConsole.Write(calendar); } } } ``` **布局** ``` #region layout // 创建布局 var layout = new Layout("Root"); // 创建左右两侧布局 var leftColumnLayout = new Layout("Left"); leftColumnLayout.SplitColumns( new Layout("Top"), new Layout("Bottom") ); var rightColumnLayout = new Layout("Right"); rightColumnLayout.SplitRows( new Layout("Top"), new Layout("Bottom") ); // 将左右两侧布局添加到布局中 layout.SplitColumns(leftColumnLayout, rightColumnLayout); // 更新左列布局中的面板 leftColumnLayout["Left"].Update( new Panel( Align.Center, new Markup("[blue]你好![/]", VerticalAlignment.Middle) ) ); // 渲染布局 AnsiConsole.Write(layout); #endregion规则水平线 ``` **运行结果** ``` hello! ``` **说明** * 代码首先创建了一个日历对象并打印它。 * 然后,代码创建了左右两侧布局,并将它们添加到布局中。 * 最后,代码更新了左列布局中的面板,显示“你好!”消息。

正文

前言

做过.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);

项目源码地址

更多项目实用功能和特性欢迎前往项目开源地址查看👀,别忘了给项目一个Star支持💖。

优秀项目和框架精选

该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量。坑已挖,欢迎大家踊跃提交PR推荐或自荐(让优秀的项目和框架不被埋没🤞)。

DotNetGuide技术社区交流群

  • DotNetGuide技术社区是一个面向.NET开发者的开源技术社区,旨在为开发者们提供全面的C#/.NET/.NET Core相关学习资料、技术分享和咨询、项目框架推荐、求职和招聘资讯、以及解决问题的平台。
  • 在DotNetGuide技术社区中,开发者们可以分享自己的技术文章、项目经验、学习心得、遇到的疑难技术问题以及解决方案,并且还有机会结识志同道合的开发者。
  • 我们致力于构建一个积极向上、和谐友善的.NET技术交流平台。无论您是初学者还是有丰富经验的开发者,我们都希望能为您提供更多的价值和成长机会。

欢迎加入DotNetGuide技术社区微信交流群👪

与一个库帮你轻松的创建漂亮的.NET控制台应用程序相似的内容:

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

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

使用Terminal.Gui构建功能强大的.NET控制台应用

前言 前段时间分享了一个库帮你轻松的创建漂亮的.NET控制台应用程序 - Spectre.Console的文章教程,然后就有小伙伴提问:.NET控制台应用需要应对强交互性的场景,有什么好的解决方案?,今天大姚给大家分享一款适用于.NET的跨平台终端 UI 工具包,帮助大家快速构建功能强大的.NET控

C# 在Excel中添加、应用或删除筛选器 (日期筛选、文本筛选、数字筛选)

自动筛选器是 Excel 中的一个基本但极其有用的功能,它可以让你根据特定的条件来自动隐藏和显示你的数据。当有大量的数据需要处理时,这个功能可以帮你快速找到你需要的信息,从未更加有效地分析和处理相关数据。 下面将介绍如何使用免费.NET Excel库在Excel中添加、应用和删除自动筛选器。包含以下

我的编程学习小圈子

一个帮你学编程、做项目、找工作少走弯路的交流圈,进步从此开始!

30天帮你一步步学会Python的开源项目

最近发现一个不错的免费开源学习项目:30天学会Python 如果您最近有学习Python的打算,不妨看看这个是否适合你? 项目地址:https://github.com/Asabeneh/30-Days-Of-Python 博客地址:https://blog.didispace.com/tj-30-

有没有夫妻相?刷一下脸就知道!

摘要:本文利用ssim算法,帮你快速打造一个“刷脸测试夫妻相”Demo出来。 本文分享自华为云社区《情人节季,快来上传你的女神照片,测试下你们的夫妻相》,作者: HWCloudAI 。 “夫妻相”是指两人之间的相貌让人感觉是一对夫妻,还有一种说法是指夫妻之间面容相似。 有研究认为:两个人在一起生活得

开源免费的文件投喂与问答工具,构建你的第二大脑

利用AI帮你读文章、利用AI帮你分析非结构化数据,这些最为潮流的AI辅助工具,相信很多读者都在各种媒体上看到过了。但还是有不少人并没有真正的使用过,这里有很多原因导致,具体就不细说了,懂的都懂。 今天TJ就给大家推荐一个你可以在线使用,也可以自己搭建的AI辅助工具:[**Quivr**](https

快速绘制流程图「GitHub 热点速览 v.22.47」

画流程图一直是研发的一个难题,如何画得通俗易懂已经够让人头疼了,还要美观大方。用 d2 的语法描述下流程,d2 会自动帮你生成一张配色极佳的流程图。说到研发的选择,本周特推的 choiceof.dev 罗列了众多开发过程中会遇到的选项,你可以自测下你同主流研发的契合度。 本周周榜呢,有监控网络流量的

[转帖]掌握Linux中的12个grep命令

http://blog.itpub.net/70023145/viewspace-2924123/ 你是否遇到过需要在文件中查找一个特定的字符串或者样式,但是不知道从哪儿开始?那么,就请grep来帮你吧。 grep是每个Linux发行版都预装的一个强有力的文件模式搜索工具。无论何种原因,如果你的系统

2.如何选择go语言基础类型——Leetcode习题9

[TOC] # 本篇前瞻 欢迎来go语言的基础篇,这里会帮你梳理一下go语言的基本类型,注意本篇有参考[go圣经](https://gopl-zh.github.io/),如果你有完整学习的需求可以看一下。另外,go语言的基本类型比较简单,介绍过程就比较粗暴,不过我们需要先从一个例题开始。 # Le