TabControl.SelectedContentTemplateSelector Property

 
System_CAPS_noteNote

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Gets the DataTemplateSelector of the currently selected item.

Namespace:   System.Windows.Controls
Assembly:  PresentationFramework (in PresentationFramework.dll)

public DataTemplateSelector SelectedContentTemplateSelector { get; internal set; }

Property Value

Type: System.Windows.Controls.DataTemplateSelector

The DataTemplateSelector of the currently selected item. The default is null.

The TabControl updates this property to reference to the DataTemplateSelector for the active TabItem when the tab selection changes. Set TabControl.ContentTemplateSelector or the ContentTemplateSelector property on a TabItem to specify the DataTemplateSelector for a TabItem.

The ControlTemplate of the TabControl uses the ContentPresenter.ContentSource property to bind the ContentPresenter.ContentTemplateSelector property to this property. If you create a new ControlTemplate for the TabControl, be sure to the bind the ContentPresenter.Content property to this property by setting ContentPresenter.ContentSource property to "SelectedContent" or by using the TemplateBinding Markup Extension.

<object property="{TemplateBinding SelectedContentTemplateSelector}"/>

Identifier field

SelectedContentTemplateSelectorProperty

Metadata properties set to true

None

The following example creates a ControlTemplate for the TabControl. Setting the ContentSource property to "SelectedContent" creates aliases to the SelectedContent, SelectedContentTemplate, and SelectedContentTemplateSelector properties.

<Style  TargetType="{x:Type TabControl}">
  <Setter Property="OverridesDefaultStyle"
          Value="True" />
  <Setter Property="SnapsToDevicePixels"
          Value="True" />
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="{x:Type TabControl}">
        <Grid KeyboardNavigation.TabNavigation="Local">
          <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
          </Grid.RowDefinitions>
          <VisualStateManager.VisualStateGroups>
            <VisualStateGroup x:Name="CommonStates">
              <VisualState x:Name="Disabled">
                <Storyboard>
                  <ColorAnimationUsingKeyFrames Storyboard.TargetName="Border"
                                                Storyboard.TargetProperty="(Border.BorderBrush).
                    (SolidColorBrush.Color)">
                    <EasingColorKeyFrame KeyTime="0"
                                         Value="#FFAAAAAA" />
                  </ColorAnimationUsingKeyFrames>
                </Storyboard>
              </VisualState>
            </VisualStateGroup>
          </VisualStateManager.VisualStateGroups>
          <TabPanel x:Name="HeaderPanel"
                    Grid.Row="0"
                    Panel.ZIndex="1"
                    Margin="0,0,4,-1"
                    IsItemsHost="True"
                    KeyboardNavigation.TabIndex="1"
                    Background="Transparent" />
          <Border x:Name="Border"
                  Grid.Row="1"
                  BorderThickness="1"
                  CornerRadius="2"
                  KeyboardNavigation.TabNavigation="Local"
                  KeyboardNavigation.DirectionalNavigation="Contained"
                  KeyboardNavigation.TabIndex="2">
            <Border.Background>
              <LinearGradientBrush EndPoint="0.5,1"
                                   StartPoint="0.5,0">
                <GradientStop Color="{DynamicResource ContentAreaColorLight}"
                              Offset="0" />
                <GradientStop Color="{DynamicResource ContentAreaColorDark}"
                              Offset="1" />
              </LinearGradientBrush>
            </Border.Background>
            <Border.BorderBrush>
              <SolidColorBrush Color="{DynamicResource BorderMediumColor}"/>
            </Border.BorderBrush>
            <ContentPresenter x:Name="PART_SelectedContentHost"
                              Margin="4"
                              ContentSource="SelectedContent" />
          </Border>
        </Grid>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

The following example binds the SelectedContentTemplateSelector property to the ContentPresenter.ContentTemplateSelector property by using the TemplateBinding Markup Extension.

.NET Framework
Available since 3.0
Return to top
Show: