Compartir vía


TabControl.SelectedContent Propiedad

Definición

Obtiene el contenido del TabItem actualmente seleccionado.

public:
 property System::Object ^ SelectedContent { System::Object ^ get(); };
public object SelectedContent { get; }
member this.SelectedContent : obj
Public ReadOnly Property SelectedContent As Object

Valor de propiedad

Contenido del TabItem actualmente seleccionado. De manera predeterminada, es null.

Ejemplos

En el ejemplo siguiente se usa la SelectedContent propiedad para obtener en Person el objeto seleccionado TabItemactualmente.

if (tabCtrl1.SelectedContent is Person)
{
    Person selectedPerson = tabCtrl1.SelectedContent as Person;
    StringBuilder personInfo = new StringBuilder();

    personInfo.Append(selectedPerson.FirstName);
    personInfo.Append(" ");
    personInfo.Append(selectedPerson.LastName);
    personInfo.Append(", ");
    personInfo.Append(selectedPerson.HomeTown);
    MessageBox.Show(personInfo.ToString());
}

If TypeOf tabCtrl1.SelectedContent Is Person Then

    Dim selectedPerson As Person = tabCtrl1.SelectedContent

    Dim personInfo As StringBuilder = New StringBuilder()

    personInfo.Append(selectedPerson.FirstName)
    personInfo.Append(" ")
    personInfo.Append(selectedPerson.LastName)
    personInfo.Append(", ")
    personInfo.Append(selectedPerson.HomeTown)
    MessageBox.Show(personInfo.ToString())
End If

En el ejemplo siguiente se crea un ControlTemplate para .TabControl Al establecer la ContentSource propiedad en "SelectedContent", se crean alias en las SelectedContentpropiedades , SelectedContentTemplatey 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>

En el ejemplo siguiente se enlaza la SelectedContent propiedad a la ContentPresenter.Content propiedad mediante la extensión de marcado TemplateBinding.

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

Comentarios

Esta propiedad se actualiza para hacer referencia Content al del activo TabItem cuando cambia la selección de tabulación.

de ControlTemplateTabControl utiliza la ContentPresenter.ContentSource propiedad para enlazar la ContentPresenter.Content propiedad a esta propiedad. Si crea un nuevo ControlTemplate para TabControl, asegúrese de enlazar la ContentPresenter.Content propiedad a esta propiedad estableciendo la ContentPresenter.ContentSource propiedad en "SelectedContent" o mediante templateBinding Markup Extension.

Uso de atributos XAML

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

Información sobre propiedades de dependencia

Campo identificador SelectedContentProperty
Propiedades de metadatos establecidas en true Ninguno

Se aplica a