所以设置不同的颜色为每个标签我在Window.Resources以下样式:使用相同的风格
<Style TargetType="TabItem" x:Key="tiS">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TabItem">
<Grid Height="40" Width="186">
<Border Name="tiBorder" Background="Transparent">
<ContentPresenter ContentSource="Header"
VerticalAlignment="Center"
HorizontalAlignment="Center"
TextBlock.FontSize="20"/>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Panel.ZIndex" Value="90"/>
<Setter TargetName="tiBorder" Property="Background" Value="{DynamicResource tiB}"/>
<!--<Setter TargetName="tiBorder" Property="Margin" Value="0,-4,0,-4"/>-->
<Setter TargetName="tiBorder" Property="BorderThickness" Value="0,0,0,1"/>
<Setter TargetName="tiBorder" Property="BorderBrush" Value="{StaticResource tiLineFade}"/>
</Trigger>
<Trigger Property="IsSelected" Value="False">
<Setter Property="Panel.ZIndex" Value="80"/>
<Setter TargetName="tiBorder" Property="BorderThickness" Value="0,0,0,1"/>
<Setter TargetName="tiBorder" Property="BorderBrush" Value="{StaticResource tiLineFade}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
这种风格上使用5周的TabItems,每个用“DynamicResource赋予不同的颜色tiB'在触发器中。
在我把下面的资源(COLOR1在Window.Resources设置)每次的TabItem:
<TabItem.Resources>
<SolidColorBrush x:Key="tiB" Color="{StaticResource Color1}"/>
</TabItem.Resources>
我想知道,有没有更简单的方式来做到这一点还是我这样做对吗?这是我第一次使用WPF中的样式,所以我想做正确的事。 (此代码正在寻找一个更好的(如果有的话)解决方案,以我的情况!)
下面是完整的代码:http://pastebin.com/igwxgp6M
使用样式选择器应用颜色... – Sankarann
我在样式选择器上进行了一次搜索,从我看到的是我必须使用其中的颜色制作不同的样式,并为每个tabitem使用正确的样式编写一些代码。我之所以这样做是因为我不需要编辑5种不同的样式,如果我想改变一些东西,但只有1个。 – Krowi