Поделиться через


TabControl.SelectedContentTemplateSelector Свойство

Определение

DataTemplateSelector Возвращает выбранный в данный момент элемент.

public:
 property System::Windows::Controls::DataTemplateSelector ^ SelectedContentTemplateSelector { System::Windows::Controls::DataTemplateSelector ^ get(); };
public System.Windows.Controls.DataTemplateSelector SelectedContentTemplateSelector { get; }
member this.SelectedContentTemplateSelector : System.Windows.Controls.DataTemplateSelector
Public ReadOnly Property SelectedContentTemplateSelector As DataTemplateSelector

Значение свойства

Выбранный DataTemplateSelector в данный момент элемент. Значение по умолчанию — null.

Примеры

В следующем примере создается ControlTemplate объект для TabControl. ContentSource Задание свойства для "SelectedContent" создания псевдонимов SelectedContentдля свойств SelectedContentTemplateи SelectedContentTemplateSelector свойств.

<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>

В следующем примере свойство привязывается SelectedContentTemplateSelector к ContentPresenter.ContentTemplateSelector свойству с помощью расширения разметки TemplateBinding.

<ContentPresenter Content="{TemplateBinding SelectedContent}" 
     ContentTemplate="{TemplateBinding SelectedContentTemplate}" 
     ContentTemplateSelector="{TemplateBinding SelectedContentTemplateSelector}" />

Комментарии

Это TabControl свойство обновляется, чтобы ссылаться на DataTemplateSelector активный TabItem при изменении выбора вкладки. Задайте TabControl.ContentTemplateSelector или ContentTemplateSelector свойство для TabItem указания DataTemplateSelector значения TabItem.

TabControl Свойство ControlTemplate используется ContentPresenter.ContentSource для привязки ContentPresenter.ContentTemplateSelector свойства к этому свойству. Если вы создаете новый ControlTemplate объект для TabControlэтого свойства, обязательно привязываете ContentPresenter.Content свойство к этому свойству, задав ContentPresenter.ContentSource свойству "SelectedContent" или с помощью расширения разметки TemplateBinding.

Использование атрибута XAML

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

Сведения о свойстве зависимостей

Элемент Ценность
Поле идентификатора SelectedContentTemplateSelectorProperty
Свойства метаданных, равные свойству true Нет

Применяется к