void RenderBorders()
{
if (this.paragraph.Format.IsNull("Borders"))
return;
Area shadingArea = GetShadingArea();
XUnit left = shadingArea.X;
XUnit top = shadingArea.Y;
XUnit bottom = shadingArea.Y + shadingArea.Height;
XUnit right = shadingArea.X + shadingArea.Width;
Borders borders = this.paragraph.Format.Borders;
BordersRenderer bordersRenderer = new BordersRenderer(borders, this.gfx);
XUnit borderWidth = bordersRenderer.GetWidth(BorderType.Left);
if (borderWidth > 0)
{
left -= borderWidth;
bordersRenderer.RenderVertically(BorderType.Left, left, top, bottom - top);
}
borderWidth = bordersRenderer.GetWidth(BorderType.Right);
if (borderWidth > 0)
{
bordersRenderer.RenderVertically(BorderType.Right, right, top, bottom - top);
right += borderWidth;
}
borderWidth = bordersRenderer.GetWidth(BorderType.Top);
if (this.renderInfo.FormatInfo.IsStarting && borderWidth > 0)
{
top -= borderWidth;
bordersRenderer.RenderHorizontally(BorderType.Top, left, top, right - left);
}
borderWidth = bordersRenderer.GetWidth(BorderType.Bottom);
if (this.renderInfo.FormatInfo.IsEnding && borderWidth > 0)
{
bordersRenderer.RenderHorizontally(BorderType.Bottom, left, bottom, right - left);
}
}