分享一个以前项目中用到的简单的TabItem样式。
效果图如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
<SolidColorBrush x:Key=
"TabItemDisabledBackground"
Color=
"#F4F4F4"
/>
<SolidColorBrush x:Key=
"TabItemDisabledBorderBrush"
Color=
"#FFC9C7BA"
/>
<Style TargetType=
"{x:Type TabItem}"
>
<!--<Setter Property=
"FocusVisualStyle"
Value=
"{x:null}"
/>-->
<Setter Property=
"Foreground"
Value=
"#333333"
/>
<Setter Property=
"FontSize"
Value=
"16"
/>
<Setter Property=
"BorderBrush"
Value=
"{StaticResource TabControlNormalBorderBrush}"
/>
<Setter Property=
"Background"
Value=
"{StaticResource ButtonNormalBackground}"
/>
<Setter Property=
"HorizontalContentAlignment"
Value=
"Stretch"
/>
<Setter Property=
"VerticalContentAlignment"
Value=
"Stretch"
/>
<Setter Property=
"Template"
>
<Setter.Value>
<ControlTemplate TargetType=
"{x:Type TabItem}"
>
<Grid SnapsToDevicePixels=
"true"
Height=
"40"
MinWidth=
"110"
>
<Path Margin=
"0 0 0 -12"
x:Name=
"PATH"
Visibility=
"Collapsed"
Data=
"M0.5,0.5 L109.5,0.5 109.5,39.5 64,40 57,51 49,40 0.5,39.5 z"
Fill=
"#FF0FAF46"
Height=
"51.5"
Stretch=
"Fill"
Stroke=
"Transparent"
Width=
"110"
/>
<Border x:Name=
"Bd"
Background=
"#dfe9f6"
>
<ContentPresenter Margin=
"5 0 5 0"
x:Name=
"Content"
ContentSource=
"Header"
HorizontalAlignment=
"{Binding HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"
RecognizesAccessKey=
"True"
SnapsToDevicePixels=
"{TemplateBinding SnapsToDevicePixels}"
VerticalAlignment=
"{Binding VerticalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"
/>
</Border>
</Grid>
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property=
"IsSelected"
Value=
"true"
/>
<Condition Property=
"TabStripPlacement"
Value=
"Top"
/>
</MultiTrigger.Conditions>
<Setter Property=
"Visibility"
Value=
"visible"
TargetName=
"PATH"
/>
<Setter Property=
"Foreground"
Value=
"White"
></Setter>
<Setter Property=
"Background"
Value=
"#FF0FAF46"
TargetName=
"Bd"
/>
</MultiTrigger>
<Trigger Property=
"IsEnabled"
Value=
"false"
>
<Setter Property=
"Background"
TargetName=
"Bd"
Value=
"{StaticResource TabItemDisabledBackground}"
/>
<Setter Property=
"BorderBrush"
TargetName=
"Bd"
Value=
"{StaticResource TabItemDisabledBorderBrush}"
/>
<Setter Property=
"Foreground"
Value=
"{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"
/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
|
这里只实现了标签方向在Top的实现,其它动画或者显示效果都是可以随意增加的!