This documentation is archived and is not being maintained.

TabControl.ContentStringFormat Property

Updated: July 2008

Gets a composite string that specifies how to format the contents of the TabItem objects if they are displayed as strings. This is a dependency property.

Namespace:  System.Windows.Controls
Assembly:  PresentationFramework (in PresentationFramework.dll)
XMLNS for XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

public string ContentStringFormat { get; set; }
<object ContentStringFormat="string" .../>

Property Value

Type: System.String
A composite string that specifies how to format the contents of the TabItem objects if they are displayed as strings.

ContentStringFormat can be a predefined, composite, or custom string format. For more information about string formats, see Formatting Types. If you set the ContentTemplate or ContentTemplateSelector of a TabControl, the ContentStringFormat property is ignored.

The following example binds a TabControl to a collection of Student objects. The Student class has a Name property, a collection of Course objects, and implements the IFormattable.ToString method to return either the Name of the student or a string that lists the student's courses. The example uses HeaderedContentControl.HeaderStringFormat to put a student's name in the Header of each TabItem (which inherits from HeaderedContentControl), and the ContentStringFormat to display the course list for each student in the Content of the TabItem. For the entire example, see Format Strings in a TabControl Sample.

<Grid>
  <Grid.Resources>
    <src:Students x:Key="Students"/>

    <Style TargetType="TabItem">
      <Setter Property="HeaderStringFormat" Value="n"/>
      <Setter Property="FontFamily" Value="Lucida Sans Unicode"/>
      <Setter Property="Foreground" Value="Green"/>
      <Setter Property="FontWeight" Value="Bold"/>
    </Style>
  </Grid.Resources>

  <TabControl ItemsSource="{StaticResource Students}"
              FontFamily="Lucida Console" Foreground="Navy"
              ContentStringFormat="cl"/>
</Grid>

The following example implements the IFormattable.ToString method to return either the Name of the student or a string that lists the student's courses.

public string ToString(string format, IFormatProvider formatProvider)
{
    // 'n': print the name only. 
    if (format == "n")
    {
        return Name;
    }

    // 'cl': print the course list. 
    if (format == "cl")
    {
        string stringFormat = "{0,-25}{1,-30}{2,-10}\r\n";

        StringBuilder str = new StringBuilder();

        str.AppendLine(); 
        str.AppendFormat(stringFormat, "Title", "Description", "ID");
        str.AppendLine(); 

        foreach (Course c in Courses)
        {
            str.AppendFormat(stringFormat, c.Title, c.Description, c.SectionID);
        }

        return str.ToString();
    }

    return this.ToString();
}

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5 SP1, 3.0 SP2

Date

History

Reason

July 2008

Added topic for new member.

SP1 feature change.

Show: