/// <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; }