diff --git a/Source/ConsoleDraw/WindowManager.cs b/Source/ConsoleDraw/WindowManager.cs index 03b3649..3ee13ce 100644 --- a/Source/ConsoleDraw/WindowManager.cs +++ b/Source/ConsoleDraw/WindowManager.cs @@ -9,10 +9,15 @@ namespace ConsoleDraw { public static class WindowManager { - public static void DrawColourBlock(ConsoleColor colour, int startX, int startY, int endX, int endY) + + public static void DrawColourBlock(ConsoleColor colour, int startX, int startY, int endX, int endY,bool restoreSetting = true) { - Console.BackgroundColor = colour; + ConsoleColor oldcolor = Console.BackgroundColor; + int oldX = Console.CursorLeft; + int oldy = Console.CursorTop; + Console.BackgroundColor = colour; + for (var i = startX; i < endX; i++) { Console.CursorLeft = startY; @@ -20,6 +25,13 @@ public static void DrawColourBlock(ConsoleColor colour, int startX, int startY, Console.WriteLine("".PadLeft(endY - startY)); } + + if(restoreSetting) + { + Console.BackgroundColor = oldcolor; + Console.CursorLeft = oldX; + Console.CursorTop = oldy; + } } public static void WirteText(String text, int startX, int startY, ConsoleColor textColour, ConsoleColor backgroundColour) diff --git a/Source/InlineTestApp/Program.cs b/Source/InlineTestApp/Program.cs index 3070288..225a81e 100644 --- a/Source/InlineTestApp/Program.cs +++ b/Source/InlineTestApp/Program.cs @@ -17,6 +17,9 @@ static void Main(string[] args) Console.WriteLine(); Console.WriteLine(); + WindowManager.DrawColourBlock(ConsoleColor.Red, 15, 20, 20, 25); + + for (var i = 0; i < 2; i++ ) Console.WriteLine(i.ToString());