2010-03-05 81 views
2

我使用填充了使用Itemssource的集合的WPF Tabcontrol。使用ItemsSource填充时的样式TabItem

<TabControl x:Name="_tabControl" ItemsSource="{Binding TabViewModelList}"> 
      <TabControl.ItemContainerStyle> 
        <Style TargetType="TabItem"> 
         <Setter Property="Header" Value="{Binding TabCaption}"/> 
        <Setter Property="Content" Value="{Binding TabContent}"/> 
        <Setter Property="IsSelected" Value="{Binding IsDefault}"/> 
       </Style> 
       </TabControl.ItemContainerStyle> 
      </TabControl> 

现在我想设置我的TabItem的风格在我的App.xaml(或其他的resourcefile)是这样的:

<Style TargetType="{x:Type TabItem}"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type TabItem}"> 
         <Grid> 
          <Border 
      Name="Border" 
      Background="LightBlue" 
      BorderBrush="Black" 
      BorderThickness="1,1,1,1" 
      CornerRadius="6,6,0,0" > 
           <ContentPresenter x:Name="ContentSite" 
       VerticalAlignment="Center" 
       HorizontalAlignment="Center" 
       ContentSource="Header" 
       Margin="12,2,12,2"/> 
          </Border> 
         </Grid> 
         <ControlTemplate.Triggers> 
          <Trigger Property="IsSelected" Value="True"> 
           <Setter TargetName="Border" Property="Background" Value="LightBlue" /> 
          </Trigger> 
          <Trigger Property="IsSelected" Value="False"> 
           <Setter TargetName="Border" Property="Background" Value="LightGray" /> 
          </Trigger> 
         </ControlTemplate.Triggers> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 

..但在ItemContainerStyle,当然覆盖的ControlTemplate。

我该如何结合这两个,所以我可以动态加载我的tabcontrol并仍然能够以我想要的方式来设置我的TabItems?

回答

1

好的......解决了我自己的问题。很明显..

命名我的模板

<Style TargetType="{x:Type TabItem}" x:Key="TabItemTemplate"> 

增加了一个支持算法FMP属性是这样的:

<Style TargetType="TabItem" BasedOn="{StaticResource TabItemTemplate}"> 

但是,如果我可以将它们合并成一个模板,请让我知道...

+0

非常感谢你:) – Frinavale 2010-11-25 14:35:05