Files
SpectreConsolEx/SpectreDemos/Program.cs
2025-08-07 21:11:54 +02:00

51 lines
1.5 KiB
C#

using Spectre.Console;
#region "Previous Lessons"
//Lesson 2 - Initial Setup
////AnsiConsole.MarkupLine("[bold red]Hello, World![/]");
////AnsiConsole.MarkupLine("Hello, World!");
////AnsiConsole.MarkupLine("[slowblink]Hello, World![/]");
// Lesson 3 - Colors and styles
////AnsiConsole.MarkupLine("[red]This is the inline markup[/]");
////AnsiConsole.MarkupLine("[red on white]This is the inline markup[/]");
////AnsiConsole.MarkupLine("[red on white bold]This is the inline markup[/]");
////Style danger = new Style(
//// foreground: Color.Red,
//// background: Color.White,
//// decoration: Decoration.Bold | Decoration.Italic
//// );
////AnsiConsole.Write(new Markup("Danger Text from Style\n", danger));
////AnsiConsole.WriteLine(" and more...");
#endregion
// Lesson 4 - Text prompts
//int age = AnsiConsole.Ask<int>("What is your [green]age[/]?");
int age = AnsiConsole.Prompt(
new TextPrompt<int>("What is your age")
.Validate((x) => x switch
{
< 0 => ValidationResult.Error("You were not born yet!"),
> 120 => ValidationResult.Error("You are too old!"),
_ => ValidationResult.Success()
})
);
//bool isHappy = AnsiConsole.Ask<bool>("Are you [green]happy[/]?");
string happyText = AnsiConsole.Prompt(
new TextPrompt<string>("Are you [green]happy[/]?")
.AddChoice("Yes")
.AddChoice("No")
.DefaultValue("Yes")
);
AnsiConsole.MarkupLine($"Happy: {happyText}\nAge: {age}");
Console.ReadLine();
AnsiConsole.Clear();