TablePattern.TablePatternInformation.GetColumnHeaders Method

Definition

Retrieves a collection of AutomationElements representing all the column headers in a table.

C#
public System.Windows.Automation.AutomationElement[] GetColumnHeaders();

Returns

A collection of AutomationElements. The default is an empty array.

Examples

In the following example, the row or column header is retrieved for a specific table item.

For the purposes of this example, a relationship between the RowOrColumnMajor property and the row and column header items is demonstrated. However, a table can have row and column headers regardless of the RowOrColumnMajor property of the table.

C#
///--------------------------------------------------------------------
/// <summary>
/// Obtains a table items primary row or column header.
/// </summary>
/// <param name="tableItem">
/// The table item of interest.
/// </param>
/// <returns>
/// The table item header.
/// </returns>
///--------------------------------------------------------------------
private AutomationElement GetTableItemHeader(TableItemPattern tableItem)
{
    if (tableItem == null)
    {
        throw new ArgumentException("Target element cannot be null.");
    }

    TablePattern tablePattern = GetTablePattern(tableItem.Current.ContainingGrid);

    if (tablePattern == null)
    {
        return null;
    }

    AutomationElement[] tableHeaders = 
        GetPrimaryHeaders(tablePattern);

    if (tableHeaders == null)
    {
        // Indeterminate headers.
        return null;
    }

    if (tablePattern.Current.RowOrColumnMajor == RowOrColumnMajor.ColumnMajor)
    {
        return tableHeaders[tableItem.Current.Column];
    }

    if (tablePattern.Current.RowOrColumnMajor == RowOrColumnMajor.RowMajor)
    {
        return tableHeaders[tableItem.Current.Row];
    }

    return null;
}

///--------------------------------------------------------------------
/// <summary>
/// Obtains an array of table headers.
/// </summary>
/// <param name="tablePattern">
/// The TablePattern object of interest.
/// </param>
/// <returns>
/// The table row or column primary headers.
/// </returns>
///--------------------------------------------------------------------
private AutomationElement[] GetPrimaryHeaders(
    TablePattern tablePattern)
{
    if (tablePattern.Current.RowOrColumnMajor == 
        RowOrColumnMajor.RowMajor)
    {
        return tablePattern.Current.GetRowHeaders();
    }

    if (tablePattern.Current.RowOrColumnMajor == 
        RowOrColumnMajor.ColumnMajor)
    {
        return tablePattern.Current.GetColumnHeaders();
    }

    return null;
}

Applies to

Product Versions
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

See also