我正在使用使用Itemssource填充集合的WPF Tabcontrol。
<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>
现在我想在我的App.xaml(或其他资源文件)中设置我的TabItem样式,如下所示:
<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并仍然可以按照我想要的方式设置我的TabItem样式?
答案 0 :(得分:1)
好的...解决了我自己的问题。非常明显..
命名我的模板
<Style TargetType="{x:Type TabItem}" x:Key="TabItemTemplate">
添加了这样的BasedOn属性:
<Style TargetType="TabItem" BasedOn="{StaticResource TabItemTemplate}">
但如果我可以将它们合并为一个模板,请告诉我......