Patrik Svensson 8261b25e5c Fix tree rendering
Fixes some tree rendering problems where lines were not properly drawn
at some levels during some circumstances.

* Change the API back to only allow one root.
* Now uses a stack based approach to rendering instead of recursion.
* Removes the need for measuring the whole tree in advance.
  Leave this up to each child to render.
2021-01-10 15:55:11 +01:00

1.6 KiB

Title: Rule Order: 30 RedirectFrom: rule

The Rule class is used to render a horizontal rule (line) to the terminal.

Usage

To render a rule without a title:

var rule = new Rule();
AnsiConsole.Render(rule);

Title

You can set the rule title markup text.

var rule = new Rule("[red]Hello[/]");
AnsiConsole.Render(rule);
───────────────────────────────── Hello ─────────────────────────────────

Title alignment

You can set the rule's title alignment.

var rule = new Rule("[red]Hello[/]");
rule.Alignment = Justify.Left;
AnsiConsole.Render(rule);
── Hello ────────────────────────────────────────────────────────────────

You can also specify it via an extension method:

var rule = new Rule("[red]Hello[/]");
rule.LeftAligned();
AnsiConsole.Render(rule);
── Hello ────────────────────────────────────────────────────────────────

Styling

var rule = new Rule("[red]Hello[/]");
rule.Style = Style.Parse("red dim");
AnsiConsole.Render(rule);

You can also specify it via an extension method

var rule = new Rule("[red]Hello[/]");
rule.RuleStyle("red dim");
AnsiConsole.Render(rule);