Compartilhar via


TabControl ControlTemplate Example

Controles em Windows Presentation Foundation (WPF) têm um ControlTemplate que contém a árvore visual daquele controle. Você pode mudar a estrutura e a aparência de um controle modificando o ControlTemplate daquele controle. Não há forma de substituir apenas parte da árvore visual de um controle; para alterar a árvore visual de um controle você precisa definir a propriedade Template do controle como sua nova e completa ControlTemplate.

Esse tópico mostra o ControlTemplate do controle TabControl WPF.

Este tópico contém as seguintes seções.

  • Pré-requisitos
  • TabControl ControlTemplate Example
  • Tópicos relacionados

Pré-requisitos

Para rodar os exemplos deste tópico, você deve entender como escrever aplicações WPF. Para obter mais informações, consulte Getting Started with Windows Presentation Foundation. Você também deve entender como estilos são utilizados em WPF. Para obter mais informações, consulte Styling and Templating.

TabControl ControlTemplate Example

Although this example contains all of the elements that are defined in the ControlTemplate of a TabControl by default, the specific values should be thought of as examples.

<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>
          <TabPanel 
            Name="HeaderPanel"
            Grid.Row="0"
            Panel.ZIndex="1" 
            Margin="0,0,4,-1" 
            IsItemsHost="True"
            KeyboardNavigation.TabIndex="1"
            Background="Transparent" />
          <Border 
            Name="Border" 
            Grid.Row="1" 
            Background="{StaticResource WindowBackgroundBrush}" 
            BorderBrush="{StaticResource SolidBorderBrush}" 
            BorderThickness="1" 
            CornerRadius="2" 
            KeyboardNavigation.TabNavigation="Local"
            KeyboardNavigation.DirectionalNavigation="Contained"
            KeyboardNavigation.TabIndex="2" >
            <ContentPresenter 
              Name="PART_SelectedContentHost"
              Margin="4"
              ContentSource="SelectedContent" />
          </Border>
        </Grid>
        <ControlTemplate.Triggers>
          <Trigger Property="IsEnabled" Value="False">
            <Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}" />
            <Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource DisabledBorderBrush}" />
          </Trigger>
        </ControlTemplate.Triggers>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

The preceding example uses the following resources.

<SolidColorBrush x:Key="WindowBackgroundBrush" Color="#FFF" />


...


<SolidColorBrush x:Key="SolidBorderBrush" Color="#888" />


...


<SolidColorBrush x:Key="DisabledForegroundBrush" Color="#888" />


...


<SolidColorBrush x:Key="DisabledBorderBrush" Color="#AAA" />

For the complete sample, see Estilo com ControlTemplates exemplo.

Consulte também

Conceitos

Diretrizes para criação de controles estilizados

Exemplo de ControlTemplate TabItem

Outros recursos

Exemplos de ControlTemplate