/// <summary>
 /// This is an unsupported function.  Avoid using it...
 /// Starts a linear horizontal layout within a parent vertical layout,
 /// which causes sections to first be layed out across a page as rows, then 
 /// down the page at the end of each row.
 /// </summary>
 /// <remarks>
 /// This DocumentLayout should be avoided.  The simple LinearSection
 /// with Vertical layout can handle most scenarios.  However, some more advanced
 /// setups may require this.
 /// </remarks>
 public void StartDocumentLayout()
 {
     #if _DEBUG
     Debug.WriteLine ("Avoid using the document layout - unsupported...");
     #endif
     Debug.Assert(!this.documentMode, "Already in document layout.  May not nest these.");
     LinearRepeatableSections repSections = new LinearRepeatableSections (Direction.Vertical);
     this.StartContainer (repSections);
     this.StartLinearLayout(Direction.Horizontal);
     this.documentMode = true;
 }
        /// <summary>
        /// Starts a layout of columns.
        /// </summary>
        /// <param name="columnWidth">The width of each column, in inches</param>
        /// <param name="spaceBetween">The distance between columns, in inches</param>
        /// <param name="lineDivider">Pen to use as a line divider</param>
        public void StartColumnLayout(float columnWidth, float spaceBetween,  Pen lineDivider)
        {
            this.columnLayoutMode = true;
            LinearRepeatableSections colSections =
                new LinearRepeatableSections(Direction.Horizontal);
            this.StartContainer (colSections);
            if (lineDivider != null)
            {
                SectionLine line = new SectionLine (Direction.Vertical, lineDivider);
                if (spaceBetween < lineDivider.Width)
                    spaceBetween = lineDivider.Width;
                line.MarginLeft = (spaceBetween - lineDivider.Width) / 2;
                line.MarginRight = (spaceBetween - lineDivider.Width) / 2;
                colSections.Divider = line;
            }
            else
            {
                colSections.SkipAmount = spaceBetween;
            }

            LinearSections sections;
            sections = this.StartLinearLayout(Direction.Vertical);
            sections.MaxWidth = columnWidth;
            sections.UseFullWidth = true;
        }