mirror of
https://github.com/nsnail/spectre.console.git
synced 2025-04-14 16:02:50 +08:00

* Adding social card infrastructure * Upgrades doc project to .NET 6 * Adds Playwright * Changes the console to a web project for Playwright * Adds social card template * Added blog content * Parallelized social image processing * Updating CI to use .NET 6 for docs build
1.5 KiB
1.5 KiB
Title: Live Display Order: 0 Description: "Spectre.Console can update arbitrary widgets in-place." Highlights: - Update tables or graphs with new updates. - Create a custom progress bar that extends the existing control.
Spectre.Console can update arbitrary widgets in-place.
The live display is not thread safe, and using it together with other interactive components such as prompts, status displays or other progress displays are not supported.
var table = new Table().Centered();
AnsiConsole.Live(table)
.Start(ctx =>
{
table.AddColumn("Foo");
ctx.Refresh();
Thread.Sleep(1000);
table.AddColumn("Bar");
ctx.Refresh();
Thread.Sleep(1000);
});
Asynchronous progress
If you prefer to use async/await, you can use StartAsync
instead of Start
.
var table = new Table().Centered();
await AnsiConsole.Live(table)
.StartAsync(async ctx =>
{
table.AddColumn("Foo");
ctx.Refresh();
await Task.Delay(1000);
table.AddColumn("Bar");
ctx.Refresh();
await Task.Delay(1000);
});
Configure
var table = new Table().Centered();
AnsiConsole.Live(table)
.AutoClear(false) // Do not remove when done
.Overflow(VerticalOverflow.Ellipsis) // Show ellipsis when overflowing
.Cropping(VerticalOverflowCropping.Top) // Crop overflow at top
.Start(ctx =>
{
// Omitted
});