ConditionalStyleCollection class

Represents a collection of ConditionalStyle objects.

public sealed class ConditionalStyleCollection : IEnumerable<ConditionalStyle>


Name Description
BottomLeftCell { get; } Gets the bottom left cell style.
BottomRightCell { get; } Gets the bottom right cell style.
Count { get; } Gets the number of conditional styles in the collection.
EvenColumnBanding { get; } Gets the even column banding style.
EvenRowBanding { get; } Gets the even row banding style.
FirstColumn { get; } Gets the first column style.
FirstRow { get; } Gets the first row style.
Item { get; } Retrieves a ConditionalStyle object by conditional style type. (2 indexers)
LastColumn { get; } Gets the last column style.
LastRow { get; } Gets the last row style.
OddColumnBanding { get; } Gets the odd column banding style.
OddRowBanding { get; } Gets the odd row banding style.
TopLeftCell { get; } Gets the top left cell style.
TopRightCell { get; } Gets the top right cell style.


Name Description
ClearFormatting() Clears all conditional styles of the table style.
GetEnumerator() Returns an enumerator object that can be used to iterate over all conditional styles in the collection.


It is not possible to add or remove items from this collection. It contains permanent set of items: one item for each value of the ConditionalStyleType enumeration type.


Shows how to work with certain area styles of a table.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Table table = builder.StartTable();
builder.Write("Cell 1");
builder.Write("Cell 2");
builder.Write("Cell 3");
builder.Write("Cell 4");

// Create a custom table style.
TableStyle tableStyle = (TableStyle)doc.Styles.Add(StyleType.Table, "MyTableStyle1");

// Conditional styles are formatting changes that affect only some of the table's cells
// based on a predicate, such as the cells being in the last row.
// Below are three ways of accessing a table style's conditional styles from the "ConditionalStyles" collection.
// 1 -  By style type:
tableStyle.ConditionalStyles[ConditionalStyleType.FirstRow].Shading.BackgroundPatternColor = Color.AliceBlue;

// 2 -  By index:
tableStyle.ConditionalStyles[0].Borders.Color = Color.Black;
tableStyle.ConditionalStyles[0].Borders.LineStyle = LineStyle.DotDash;
Assert.AreEqual(ConditionalStyleType.FirstRow, tableStyle.ConditionalStyles[0].Type);

// 3 -  As a property:
tableStyle.ConditionalStyles.FirstRow.ParagraphFormat.Alignment = ParagraphAlignment.Center;

// Apply padding and text formatting to conditional styles.
tableStyle.ConditionalStyles.LastRow.BottomPadding = 10;
tableStyle.ConditionalStyles.LastRow.LeftPadding = 10;
tableStyle.ConditionalStyles.LastRow.RightPadding = 10;
tableStyle.ConditionalStyles.LastRow.TopPadding = 10;
tableStyle.ConditionalStyles.LastColumn.Font.Bold = true;

// List all possible style conditions.
using (IEnumerator<ConditionalStyle> enumerator = tableStyle.ConditionalStyles.GetEnumerator())
    while (enumerator.MoveNext())
        ConditionalStyle currentStyle = enumerator.Current;
        if (currentStyle != null) Console.WriteLine(currentStyle.Type);

// Apply the custom style, which contains all conditional styles, to the table.
table.Style = tableStyle;

// Our style applies some conditional styles by default.
Assert.AreEqual(TableStyleOptions.FirstRow | TableStyleOptions.FirstColumn | TableStyleOptions.RowBands, 

// We will need to enable all other styles ourselves via the "StyleOptions" property.
table.StyleOptions = table.StyleOptions | TableStyleOptions.LastRow | TableStyleOptions.LastColumn;

doc.Save(ArtifactsDir + "Table.ConditionalStyles.docx");

See Also