/// <summary> /// Writes the value of <paramref name="repeater"/> to the <paramref name="table"/>. /// </summary> /// <param name="table">The <see cref="MigraDoc.DocumentObjectModel.Tables.Table"/> to write to.</param> /// <param name="repeater">The control.</param> /// <param name="container">The application data container.</param> /// <param name="level">The depth down the control tree being rendered (affects indenting).</param> private void WriteValueRepeater(Table table, RepeaterControl repeater, Dictionary<string, object> container, int level) { Color backgroundColour = new Color(100 - (level * PdfConstants.AlphaMultiplier * 100), this.BorderColour.C, this.BorderColour.M, this.BorderColour.Y, this.BorderColour.K); table.AppendHeaderRow(this.DefaultStyle.Font.Size, repeater.Label, PdfResources.StyleNameHeaderRow, backgroundColour) .Format.LeftIndent = new Unit(PdfConstants.IndentMultiplier * level, UnitType.Millimeter); if (((object[])container[repeater.Name]).Length == 0) { return; } Dictionary<string, object>[] items = (Dictionary<string, object>[])container[repeater.Name]; level = level < 5 ? level + 1 : level; foreach (Dictionary<string, object> repeaterItem in items) { this.WriteValue(table, repeater.Controls, repeaterItem, level); } }
/// <summary> /// Writes the value of <paramref name="group"/> to the <paramref name="table"/>. /// </summary> /// <param name="table">The <see cref="MigraDoc.DocumentObjectModel.Tables.Table"/> to write to.</param> /// <param name="group">The control.</param> /// <param name="container">The application data container.</param> /// <param name="level">The depth down the control tree being rendered (affects indenting).</param> private void WriteValueGroup(Table table, GroupControl group, Dictionary<string, object> container, int level) { Color backgroundColour = new Color(100 - (level * PdfConstants.AlphaMultiplier * 100), this.BorderColour.C, this.BorderColour.M, this.BorderColour.Y, this.BorderColour.K); table.AppendHeaderRow(this.DefaultStyle.Font.Size, group.Label, PdfResources.StyleNameHeaderRow, backgroundColour) .Format.LeftIndent = new Unit(PdfConstants.IndentMultiplier * level, UnitType.Millimeter); level = level < 5 ? level + 1 : level; this.WriteValue(table, group.Controls, container, level); }