Artistic
Can I have an ink of paint, please?
This allows you to draw artistic stuff into the console so that you can build your own interactive console applications easily.
Border
You can render a nice border to the console either without any text, just a title, a text, or box title and text. You can also customize the borders, such as drop shadows which we'll showcase in the BoxFrame
renderable.
var artistic = new Border()
{
Left = 2,
Top = 1,
InteriorWidth = 20,
InteriorHeight = 10,
};
TextWriterRaw.WriteRaw(artistic.Render());

Box
You can render a box to the terminal easily.
var artistic = new Box()
{
Left = 2,
Top = 1,
InteriorWidth = 20,
InteriorHeight = 10,
Color = ConsoleColors.Magenta3
};
TextWriterRaw.WriteRaw(artistic.Render());

Box frame
It's basically the same as a border, but without text support and without filling inside the box
var artistic = new BoxFrame("")
{
Left = 2,
Top = 1,
InteriorWidth = 20,
InteriorHeight = 10,
};
TextWriterRaw.WriteRaw(artistic.Render());

Canvas
This is your sandbox for your awesome creations. This is done by coloring individual pixels with a color of your choice.
var artistic = new Canvas()
{
Left = 2,
Top = 2,
Color = ConsoleColors.Green,
DoubleWidth = false,
Transparent = true,
InteriorWidth = 20,
InteriorHeight = 20,
Pixels =
[
// Draw the top part of the "T" letter
new(2, 2) { CellColor = ConsoleColors.Yellow },
new(3, 2) { CellColor = ConsoleColors.Yellow },
new(4, 2) { CellColor = ConsoleColors.Yellow },
new(5, 2) { CellColor = ConsoleColors.Yellow },
new(6, 2) { CellColor = ConsoleColors.Yellow },
new(7, 2) { CellColor = ConsoleColors.Yellow },
new(8, 2) { CellColor = ConsoleColors.Yellow },
new(9, 2) { CellColor = ConsoleColors.Yellow },
new(10, 2) { CellColor = ConsoleColors.Yellow },
new(11, 2) { CellColor = ConsoleColors.Yellow },
new(12, 2) { CellColor = ConsoleColors.Yellow },
new(13, 2) { CellColor = ConsoleColors.Yellow },
new(14, 2) { CellColor = ConsoleColors.Yellow },
new(15, 2) { CellColor = ConsoleColors.Yellow },
new(16, 2) { CellColor = ConsoleColors.Yellow },
new(17, 2) { CellColor = ConsoleColors.Yellow },
new(18, 2) { CellColor = ConsoleColors.Yellow },
new(2, 3) { CellColor = ConsoleColors.Yellow },
new(3, 3) { CellColor = ConsoleColors.Yellow },
new(4, 3) { CellColor = ConsoleColors.Yellow },
new(5, 3) { CellColor = ConsoleColors.Yellow },
new(6, 3) { CellColor = ConsoleColors.Yellow },
new(7, 3) { CellColor = ConsoleColors.Yellow },
new(8, 3) { CellColor = ConsoleColors.Yellow },
new(9, 3) { CellColor = ConsoleColors.Yellow },
new(10, 3) { CellColor = ConsoleColors.Yellow },
new(11, 3) { CellColor = ConsoleColors.Yellow },
new(12, 3) { CellColor = ConsoleColors.Yellow },
new(13, 3) { CellColor = ConsoleColors.Yellow },
new(14, 3) { CellColor = ConsoleColors.Yellow },
new(15, 3) { CellColor = ConsoleColors.Yellow },
new(16, 3) { CellColor = ConsoleColors.Yellow },
new(17, 3) { CellColor = ConsoleColors.Yellow },
new(18, 3) { CellColor = ConsoleColors.Yellow },
// Draw the line of the "T" letter
new(9, 3) { CellColor = ConsoleColors.Yellow },
new(9, 4) { CellColor = ConsoleColors.Yellow },
new(9, 5) { CellColor = ConsoleColors.Yellow },
new(9, 6) { CellColor = ConsoleColors.Yellow },
new(9, 7) { CellColor = ConsoleColors.Yellow },
new(9, 8) { CellColor = ConsoleColors.Yellow },
new(9, 9) { CellColor = ConsoleColors.Yellow },
new(9, 10) { CellColor = ConsoleColors.Yellow },
new(9, 11) { CellColor = ConsoleColors.Yellow },
new(9, 12) { CellColor = ConsoleColors.Yellow },
new(9, 13) { CellColor = ConsoleColors.Yellow },
new(9, 14) { CellColor = ConsoleColors.Yellow },
new(9, 15) { CellColor = ConsoleColors.Yellow },
new(9, 16) { CellColor = ConsoleColors.Yellow },
new(9, 17) { CellColor = ConsoleColors.Yellow },
new(9, 18) { CellColor = ConsoleColors.Yellow },
new(9, 19) { CellColor = ConsoleColors.Yellow },
new(10, 3) { CellColor = ConsoleColors.Yellow },
new(10, 4) { CellColor = ConsoleColors.Yellow },
new(10, 5) { CellColor = ConsoleColors.Yellow },
new(10, 6) { CellColor = ConsoleColors.Yellow },
new(10, 7) { CellColor = ConsoleColors.Yellow },
new(10, 8) { CellColor = ConsoleColors.Yellow },
new(10, 9) { CellColor = ConsoleColors.Yellow },
new(10, 10) { CellColor = ConsoleColors.Yellow },
new(10, 11) { CellColor = ConsoleColors.Yellow },
new(10, 12) { CellColor = ConsoleColors.Yellow },
new(10, 13) { CellColor = ConsoleColors.Yellow },
new(10, 14) { CellColor = ConsoleColors.Yellow },
new(10, 15) { CellColor = ConsoleColors.Yellow },
new(10, 16) { CellColor = ConsoleColors.Yellow },
new(10, 17) { CellColor = ConsoleColors.Yellow },
new(10, 18) { CellColor = ConsoleColors.Yellow },
new(10, 19) { CellColor = ConsoleColors.Yellow },
new(11, 3) { CellColor = ConsoleColors.Yellow },
new(11, 4) { CellColor = ConsoleColors.Yellow },
new(11, 5) { CellColor = ConsoleColors.Yellow },
new(11, 6) { CellColor = ConsoleColors.Yellow },
new(11, 7) { CellColor = ConsoleColors.Yellow },
new(11, 8) { CellColor = ConsoleColors.Yellow },
new(11, 9) { CellColor = ConsoleColors.Yellow },
new(11, 10) { CellColor = ConsoleColors.Yellow },
new(11, 11) { CellColor = ConsoleColors.Yellow },
new(11, 12) { CellColor = ConsoleColors.Yellow },
new(11, 13) { CellColor = ConsoleColors.Yellow },
new(11, 14) { CellColor = ConsoleColors.Yellow },
new(11, 15) { CellColor = ConsoleColors.Yellow },
new(11, 16) { CellColor = ConsoleColors.Yellow },
new(11, 17) { CellColor = ConsoleColors.Yellow },
new(11, 18) { CellColor = ConsoleColors.Yellow },
new(11, 19) { CellColor = ConsoleColors.Yellow },
]
};
TextWriterRaw.WriteRaw(artistic.Render());

Animated canvases
You can make animated canvases using the AnimatedCanvas
class. It allows you to define canvas frames that describe a group of arrays of cell properties. They are changed sequentially to form an animated canvas. The example below is taken from this file.
Rulers
You can render the rulers in your console either horizontally or vertically using the Ruler
simple renderer.
var ruler1 = new Ruler()
{
ForegroundColor = ConsoleColors.White,
IntersectionIndicator = true
};
var ruler2 = new Ruler()
{
ForegroundColor = ConsoleColors.Red,
Text = "Ruler at left alignment",
IntersectionIndicator = true
};
var ruler3 = new Ruler()
{
ForegroundColor = ConsoleColors.Lime,
Text = "Ruler at center alignment",
Alignment = TextAlignment.Middle,
IntersectionIndicator = true
};
var ruler4 = new Ruler()
{
ForegroundColor = ConsoleColors.Blue,
Text = "Ruler at right alignment",
Alignment = TextAlignment.Right,
IntersectionIndicator = true
};
// Render the rulers
TextWriterRaw.WritePlain(ruler1.Render());
TextWriterRaw.WritePlain(ruler2.Render());
TextWriterRaw.WritePlain(ruler3.Render());
TextWriterRaw.WritePlain(ruler4.Render());

Last updated