2010-03-05 99 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