MigraDoc.Rendering.ParagraphRenderer.FinishLayoutInfo C# (CSharp) Method

FinishLayoutInfo() private method

Finishes the layout info by calculating starting and trailing heights.
private FinishLayoutInfo ( ) : void
return void
    private void FinishLayoutInfo()
    {
      LayoutInfo layoutInfo = this.renderInfo.LayoutInfo;
      ParagraphFormat format = this.paragraph.Format;
      ParagraphFormatInfo parInfo = (ParagraphFormatInfo)this.renderInfo.FormatInfo;
      layoutInfo.MinWidth = this.minWidth;
      layoutInfo.KeepTogether = format.KeepTogether;

      if (parInfo.IsComplete)
      {
        int limitOfLines = 1;
        if (parInfo.widowControl)
          limitOfLines = 3;

        if (parInfo.LineCount <= limitOfLines)
          layoutInfo.KeepTogether = true;
      }
      if (parInfo.IsStarting)
      {
        layoutInfo.MarginTop = format.SpaceBefore.Point;
        layoutInfo.PageBreakBefore = format.PageBreakBefore;
      }
      else
      {
        layoutInfo.MarginTop = 0;
        layoutInfo.PageBreakBefore = false;
      }

      if (parInfo.IsEnding)
      {
        layoutInfo.MarginBottom = this.paragraph.Format.SpaceAfter.Point;
        layoutInfo.KeepWithNext = this.paragraph.Format.KeepWithNext;
      }
      else
      {
        layoutInfo.MarginBottom = 0;
        layoutInfo.KeepWithNext = false;
      }
      if (parInfo.LineCount > 0)
      {
        XUnit startingHeight = parInfo.GetFirstLineInfo().vertical.height;
        if (parInfo.isStarting && this.paragraph.Format.WidowControl && parInfo.LineCount >= 2)
          startingHeight += parInfo.GetLineInfo(1).vertical.height;

        layoutInfo.StartingHeight = startingHeight;

        XUnit trailingHeight = parInfo.GetLastLineInfo().vertical.height;

        if (parInfo.IsEnding && this.paragraph.Format.WidowControl && parInfo.LineCount >= 2)
          trailingHeight += parInfo.GetLineInfo(parInfo.LineCount - 2).vertical.height;

        layoutInfo.TrailingHeight = trailingHeight;
      }
    }
ParagraphRenderer