所以設置不同的顏色爲每個標籤我在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