mirror of
				https://github.com/nsnail/spectre.console.git
				synced 2025-11-04 02:25:28 +08:00 
			
		
		
		
	Add Spectre.Cli to Spectre.Console
* Renames Spectre.Cli to Spectre.Console.Cli. * Now uses Verify with Spectre.Console.Cli tests. * Removes some duplicate definitions. Closes #168
This commit is contained in:
		
				
					committed by
					
						
						Patrik Svensson
					
				
			
			
				
	
			
			
			
						parent
						
							0bbf9b81a9
						
					
				
				
					commit
					0ae419326d
				
			
							
								
								
									
										15
									
								
								examples/Console/Borders/Borders.csproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								examples/Console/Borders/Borders.csproj
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
<Project Sdk="Microsoft.NET.Sdk">
 | 
			
		||||
 | 
			
		||||
  <PropertyGroup>
 | 
			
		||||
    <OutputType>Exe</OutputType>
 | 
			
		||||
    <TargetFramework>net5.0</TargetFramework>
 | 
			
		||||
    <ExampleTitle>Borders</ExampleTitle>
 | 
			
		||||
    <ExampleDescription>Demonstrates the different kind of borders.</ExampleDescription>
 | 
			
		||||
    <ExampleGroup>Widgets</ExampleGroup>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ProjectReference Include="..\..\..\src\Spectre.Console\Spectre.Console.csproj" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
 | 
			
		||||
</Project>
 | 
			
		||||
							
								
								
									
										91
									
								
								examples/Console/Borders/Program.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								examples/Console/Borders/Program.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,91 @@
 | 
			
		||||
using Spectre.Console;
 | 
			
		||||
using Spectre.Console.Rendering;
 | 
			
		||||
 | 
			
		||||
namespace BordersExample
 | 
			
		||||
{
 | 
			
		||||
    public static class Program
 | 
			
		||||
    {
 | 
			
		||||
        public static void Main()
 | 
			
		||||
        {
 | 
			
		||||
            // Render panel borders
 | 
			
		||||
            HorizontalRule("PANEL BORDERS");
 | 
			
		||||
            PanelBorders();
 | 
			
		||||
 | 
			
		||||
            // Render table borders
 | 
			
		||||
            HorizontalRule("TABLE BORDERS");
 | 
			
		||||
            TableBorders();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private static void PanelBorders()
 | 
			
		||||
        {
 | 
			
		||||
            static IRenderable CreatePanel(string name, BoxBorder border)
 | 
			
		||||
            {
 | 
			
		||||
                return new Panel($"This is a panel with\nthe [yellow]{name}[/] border.")
 | 
			
		||||
                    .Header($" [blue]{name}[/] ", Justify.Center)
 | 
			
		||||
                    .Border(border)
 | 
			
		||||
                    .BorderStyle(Style.Parse("grey"));
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            var items = new[]
 | 
			
		||||
            {
 | 
			
		||||
                CreatePanel("Ascii", BoxBorder.Ascii),
 | 
			
		||||
                CreatePanel("Square", BoxBorder.Square),
 | 
			
		||||
                CreatePanel("Rounded", BoxBorder.Rounded),
 | 
			
		||||
                CreatePanel("Heavy", BoxBorder.Heavy),
 | 
			
		||||
                CreatePanel("Double", BoxBorder.Double),
 | 
			
		||||
                CreatePanel("None", BoxBorder.None),
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            AnsiConsole.Render(
 | 
			
		||||
                new Padder(
 | 
			
		||||
                    new Columns(items).PadRight(2),
 | 
			
		||||
                    new Padding(2,0,0,0)));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private static void TableBorders()
 | 
			
		||||
        {
 | 
			
		||||
            static IRenderable CreateTable(string name, TableBorder border)
 | 
			
		||||
            {
 | 
			
		||||
                var table = new Table().Border(border);
 | 
			
		||||
                table.AddColumn("[yellow]Header 1[/]", c => c.Footer("[grey]Footer 1[/]"));
 | 
			
		||||
                table.AddColumn("[yellow]Header 2[/]", col => col.Footer("[grey]Footer 2[/]").RightAligned());
 | 
			
		||||
                table.AddRow("Cell", "Cell");
 | 
			
		||||
                table.AddRow("Cell", "Cell");
 | 
			
		||||
 | 
			
		||||
                return new Panel(table)
 | 
			
		||||
                    .Header($" [blue]{name}[/] ", Justify.Center)
 | 
			
		||||
                    .NoBorder();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            var items = new[]
 | 
			
		||||
            {
 | 
			
		||||
                CreateTable("Ascii", TableBorder.Ascii),
 | 
			
		||||
                CreateTable("Ascii2", TableBorder.Ascii2),
 | 
			
		||||
                CreateTable("AsciiDoubleHead", TableBorder.AsciiDoubleHead),
 | 
			
		||||
                CreateTable("Horizontal", TableBorder.Horizontal),
 | 
			
		||||
                CreateTable("Simple", TableBorder.Simple),
 | 
			
		||||
                CreateTable("SimpleHeavy", TableBorder.SimpleHeavy),
 | 
			
		||||
                CreateTable("Minimal", TableBorder.Minimal),
 | 
			
		||||
                CreateTable("MinimalHeavyHead", TableBorder.MinimalHeavyHead),
 | 
			
		||||
                CreateTable("MinimalDoubleHead", TableBorder.MinimalDoubleHead),
 | 
			
		||||
                CreateTable("Square", TableBorder.Square),
 | 
			
		||||
                CreateTable("Rounded", TableBorder.Rounded),
 | 
			
		||||
                CreateTable("Heavy", TableBorder.Heavy),
 | 
			
		||||
                CreateTable("HeavyEdge", TableBorder.HeavyEdge),
 | 
			
		||||
                CreateTable("HeavyHead", TableBorder.HeavyHead),
 | 
			
		||||
                CreateTable("Double", TableBorder.Double),
 | 
			
		||||
                CreateTable("DoubleEdge", TableBorder.DoubleEdge),
 | 
			
		||||
                CreateTable("Markdown", TableBorder.Markdown),
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            AnsiConsole.Render(new Columns(items).Collapse());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private static void HorizontalRule(string title)
 | 
			
		||||
        {
 | 
			
		||||
            AnsiConsole.WriteLine();
 | 
			
		||||
            AnsiConsole.Render(new Rule($"[white bold]{title}[/]").RuleStyle("grey").LeftAligned());
 | 
			
		||||
            AnsiConsole.WriteLine();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user