2014-09-08 4 views
0

У меня есть TabControl с двумя вкладками, я создал для него шаблон.Templated Заголовок TabItem не отображает содержимое заголовка

<TabControl x:Name="MainInfoTabControl" Grid.Row="3" Grid.RowSpan="7" Grid.Column="0" Grid.ColumnSpan="2" 
        Background="{x:Null}" 
        BorderBrush="{x:Null}" 
        > 
      <TabControl.Resources> 

       <Style x:Key="TabHeaderStyle" TargetType="{x:Type TabItem}"> 
        <Setter Property="Background" Value="{x:Null}" /> 
        <Setter Property="FontWeight" Value="DemiBold" /> 
        <Setter Property="Template"> 
         <Setter.Value> 
          <ControlTemplate TargetType="{x:Type TabItem}"> 
           <Border x:Name="HeaderBorder" BorderBrush="White" BorderThickness="2" CornerRadius="10,10,0,0" > 

            <TextBlock Text="" VerticalAlignment="Center" Margin="5"></TextBlock> 


           </Border> 
          </ControlTemplate> 
         </Setter.Value> 
        </Setter> 
       </Style> 
      </TabControl.Resources> 


      <TabItem Header="Main Details" 
        Margin="0.5, 0.5, 0, 0.5" 
        FontSize="15" 
        MinHeight="40" Width="200"      
        Style="{StaticResource TabHeaderStyle}" 
        >   

      </TabItem> 


      <TabItem Header="Pets Owned" 
        Margin="0.5, 0.5, 0, 0.5" 
        FontSize="15" 
        MinHeight="40" Width="200"      
        Style="{StaticResource TabHeaderStyle}" 
        > 

      </TabItem> 


</TabControl> 

Проблема заключается в том, что заголовок TabItem не отображается. В моем шаблоне есть TextBlock, но я не мог динамически изменять TextBlock.Text (по крайней мере связывать или несколько изменять свойство Text во время выполнения)

TabItem1 должен быть «Owner Details», в то время как TabItem2 должен быть «Домашним владельцем»,

ответ

1

Вы переопределите шаблон tabitem по умолчанию, вам нужно как-то получить значение родителя.

<TextBlock Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Header}" 
      VerticalAlignment="Center" 
      Margin="5"> 
</TextBlock> 

или

<TextBlock Text="{TemplateBinding Property=Header}" 
      VerticalAlignment="Center" 
      Margin="5"> 
</TextBlock> 
Смежные вопросы