public override void DrawFrame(Rectangle rect, FrameOptions opts = null) { var style = opts?.Style ?? FrameStyle.Single; var rectOpts = new RectangleOptions { Attributes = opts?.Attributes ?? CharAttribute.None, Background = opts?.Background ?? CharColor.Black, Foreground = opts?.Foreground ?? CharColor.White }; DrawRectangle(new Rectangle(rect.X + 1, rect.Y, rect.Width - 2, 1), Piece(FramePiece.Horizontal, style), rectOpts); DrawRectangle(new Rectangle(rect.X + 1, rect.Y + rect.Height - 1, rect.Width - 2, 1), Piece(FramePiece.Horizontal, style), rectOpts); DrawRectangle(new Rectangle(rect.X, rect.Y + 1, 1, rect.Height - 2), Piece(FramePiece.Vertical, style), rectOpts); DrawRectangle(new Rectangle(rect.X + rect.Width - 1, rect.Y + 1, 1, rect.Height - 2), Piece(FramePiece.Vertical, style), rectOpts); PutChar(new Point(rect.X, rect.Y), Piece(FramePiece.Bottom | FramePiece.Right, style), rectOpts.Foreground, rectOpts.Background, rectOpts.Attributes); PutChar(new Point(rect.X + rect.Width - 1, rect.Y), Piece(FramePiece.Bottom | FramePiece.Left, style), rectOpts.Foreground, rectOpts.Background, rectOpts.Attributes); PutChar(new Point(rect.X, rect.Y + rect.Height - 1), Piece(FramePiece.Top | FramePiece.Right, style), rectOpts.Foreground, rectOpts.Background, rectOpts.Attributes); PutChar(new Point(rect.X + rect.Width - 1, rect.Y + rect.Height - 1), Piece(FramePiece.Top | FramePiece.Left, style), rectOpts.Foreground, rectOpts.Background, rectOpts.Attributes); }
public abstract void DrawFrame(Rectangle rect, FrameOptions opts = null);