mirror of
https://github.com/nsnail/spectre.console.git
synced 2025-06-19 13:28:16 +08:00

committed by
Phil Scott

parent
2e5d18fa78
commit
fd4b96944e
15
examples/Console/AlternateScreen/AlternateScreen.csproj
Normal file
15
examples/Console/AlternateScreen/AlternateScreen.csproj
Normal file
@ -0,0 +1,15 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<ExampleTitle>Screens</ExampleTitle>
|
||||
<ExampleDescription>Demonstrates how to use alternate screens.</ExampleDescription>
|
||||
<ExampleGroup>Widgets</ExampleGroup>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\Shared\Shared.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
26
examples/Console/AlternateScreen/Program.cs
Normal file
26
examples/Console/AlternateScreen/Program.cs
Normal file
@ -0,0 +1,26 @@
|
||||
// Check if we can use alternate screen buffers
|
||||
using Spectre.Console;
|
||||
|
||||
if (!AnsiConsole.Profile.Capabilities.AlternateBuffer)
|
||||
{
|
||||
AnsiConsole.MarkupLine(
|
||||
"[red]Alternate screen buffers are not supported " +
|
||||
"by your terminal[/] [yellow]:([/]");
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Write to the terminal
|
||||
AnsiConsole.Write(new Rule("[yellow]Normal universe[/]"));
|
||||
AnsiConsole.Write(new Panel("Hello World!"));
|
||||
AnsiConsole.MarkupLine("[grey]Press a key to continue[/]");
|
||||
AnsiConsole.Console.Input.ReadKey(true);
|
||||
|
||||
AnsiConsole.AlternateScreen(() =>
|
||||
{
|
||||
// Now we're in another terminal screen buffer
|
||||
AnsiConsole.Write(new Rule("[red]Mirror universe[/]"));
|
||||
AnsiConsole.Write(new Panel("[red]Welcome to the upside down![/]"));
|
||||
AnsiConsole.MarkupLine("[grey]Press a key to return[/]");
|
||||
AnsiConsole.Console.Input.ReadKey(true);
|
||||
});
|
Reference in New Issue
Block a user