Files
SpectreConsolEx/SpectreDemos/Program.cs
2025-08-08 09:06:18 +02:00

106 lines
2.8 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...");
// 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}");
// Lesson 5 - Item Selection
////List<string> names = [
//// "Tim Corey",
//// "Sue Storm",
//// "Bilbo Baggins",
//// "John Doe",
//// "Princess Donaut",
//// "Steve Rogers"
////];
////string favoriteName = AnsiConsole.Prompt(
//// new SelectionPrompt<string>()
//// .Title("Which is your favorite placeholder name?")
//// .PageSize(4)
//// .MoreChoicesText("[grey](Move up and down to reveal more choices)[/]")
//// .AddChoices(names)
////);
////AnsiConsole.MarkupLine($"Your favorite name is: [bold red]{favoriteName}[/].");
#endregion
// Lesson 6
List<string> usualNames = [
"Tim Corey",
"Sue Storm",
"Bilbo Baggins",
"John Doe",
"Princess Donaut",
"Steve Rogers"
];
List<string> familyNames = [
"Charity",
"Jon",
"Chris"
];
List<string> favoriteName = AnsiConsole.Prompt(
new MultiSelectionPrompt<string>()
.Title("Which are your favorite placeholder names?")
.InstructionsText(
"[grey](Press [blue]<space>[/] to toggle selection, " +
"[green]<enter>[/] to accept)[/]")
.AddChoices(usualNames)
);
foreach (string name in favoriteName)
{
AnsiConsole.MarkupLine($"[bold red]{name}[/]");
}
Console.ReadLine();
AnsiConsole.Clear();