ConditionalStyle class

Represents special formatting applied to some area of a table with assigned table style.

To learn more, visit the Working with Tables documentation article.

public sealed class ConditionalStyle


Borders { get; }Gets the collection of default cell borders for the conditional style.
BottomPadding { get; set; }Gets or sets the amount of space (in points) to add below the contents of table cells.
Font { get; }Gets the character formatting of the conditional style.
LeftPadding { get; set; }Gets or sets the amount of space (in points) to add to the left of the contents of table cells.
ParagraphFormat { get; }Gets the paragraph formatting of the conditional style.
RightPadding { get; set; }Gets or sets the amount of space (in points) to add to the right of the contents of table cells.
Shading { get; }Gets a Shading object that refers to the shading formatting for this conditional style.
TopPadding { get; set; }Gets or sets the amount of space (in points) to add above the contents of table cells.
Type { get; }Gets table area to which this conditional style relates.


ClearFormatting()Clears formatting of this conditional style.
override Equals(object)Compares this conditional style with the specified object.
override GetHashCode()Calculates hash code for this object.


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