void RenderBorders(Cell cell, Rectangle innerRect)
        {
            XUnit   leftPos       = innerRect.X;
            XUnit   rightPos      = leftPos + innerRect.Width;
            XUnit   topPos        = innerRect.Y;
            XUnit   bottomPos     = innerRect.Y + innerRect.Height;
            Borders mergedBorders = this.mergedCells.GetEffectiveBorders(cell);

            BordersRenderer bordersRenderer = new BordersRenderer(mergedBorders, this.gfx);
            XUnit           bottomWidth     = bordersRenderer.GetWidth(BorderType.Bottom);
            XUnit           leftWidth       = bordersRenderer.GetWidth(BorderType.Left);
            XUnit           topWidth        = bordersRenderer.GetWidth(BorderType.Top);
            XUnit           rightWidth      = bordersRenderer.GetWidth(BorderType.Right);

            bordersRenderer.RenderVertically(BorderType.Right, rightPos, topPos, bottomPos + bottomWidth - topPos);
            bordersRenderer.RenderVertically(BorderType.Left, leftPos - leftWidth, topPos, bottomPos + bottomWidth - topPos);
            bordersRenderer.RenderHorizontally(BorderType.Bottom, leftPos - leftWidth, bottomPos, rightPos + rightWidth + leftWidth - leftPos);
            bordersRenderer.RenderHorizontally(BorderType.Top, leftPos - leftWidth, topPos - topWidth, rightPos + rightWidth + leftWidth - leftPos);

            RenderDiagonalBorders(mergedBorders, innerRect);
        }