Area GetShadingArea()
{
Area contentArea = this.renderInfo.LayoutInfo.ContentArea;
ParagraphFormat format = this.paragraph.Format;
XUnit left = contentArea.X;
left += format.LeftIndent;
if (format.FirstLineIndent < 0)
left += format.FirstLineIndent;
XUnit top = contentArea.Y;
XUnit bottom = contentArea.Y + contentArea.Height;
XUnit right = contentArea.X + contentArea.Width;
right -= format.RightIndent;
if (!this.paragraph.Format.IsNull("Borders"))
{
Borders borders = format.Borders;
BordersRenderer bordersRenderer = new BordersRenderer(borders, this.gfx);
if (this.renderInfo.FormatInfo.IsStarting)
top += bordersRenderer.GetWidth(BorderType.Top);
if (this.renderInfo.FormatInfo.IsEnding)
bottom -= bordersRenderer.GetWidth(BorderType.Bottom);
left -= borders.DistanceFromLeft;
right += borders.DistanceFromRight;
}
return new Rectangle(left, top, right - left, bottom - top);
}