public void DrawRectangle(Vector2 position, Vector2 size, BorderPen pen) { if (size.X < 0 || size.Y < 0) { throw new ArgumentException("size.X or Y can't be < 0.", "size"); } if (size.X == 0 || size.Y == 0) { return; } int maxX = position.X + size.X - 1; int maxY = position.Y + size.Y - 1; for (int x = position.X + 1; x < maxX; x++) { Write(x, position.Y, pen.HorizontalBorder, pen.CharColor, pen.BackColor); Write(x, maxY, pen.HorizontalBorder, pen.CharColor, pen.BackColor); } for (int y = position.Y + 1; y < maxY; y++) { Write(position.X, y, pen.VerticalBorder, pen.CharColor, pen.BackColor); Write(maxX, y, pen.VerticalBorder, pen.CharColor, pen.BackColor); } Write(position.X, position.Y, pen.LeftTop, pen.CharColor, pen.BackColor); Write(maxX, position.Y, pen.RightTop, pen.CharColor, pen.BackColor); Write(position.X, maxY, pen.LeftBottom, pen.CharColor, pen.BackColor); Write(maxX, maxY, pen.RightBottom, pen.CharColor, pen.BackColor); }
public Panel() { Size = DefaultSize; Border = new BorderPen() { BackColor = null, CharColor = ConsoleColor.Gray, HorizontalBorder = '-', VerticalBorder = '|', LeftTop = 'o', LeftBottom = 'o', RightTop = 'o', RightBottom = 'o', }; }