Tab.xaml 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. <ResourceDictionary
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  6. mc:Ignorable="d">
  7. <SolidColorBrush x:Key="Tab_Header_BG" Color="#FF23416F"/>
  8. <SolidColorBrush x:Key="Tab_BD" Color="Black"/>
  9. <SolidColorBrush x:Key="Tab_Header_BG_MouseOver" Color="#FF58AAE2"/>
  10. <SolidColorBrush x:Key="Tab_BG" Color="#FFEEEEEE"/>
  11. <SolidColorBrush x:Key="Tab_BD_Unable" Color="Gray"/>
  12. <LinearGradientBrush x:Key="Tab_Header_BG_Unable" EndPoint="0.5,1" StartPoint="0.5,0">
  13. <GradientStop Color="#FFB1B1B1" Offset="0"/>
  14. <GradientStop Color="#FFDADADA" Offset="1"/>
  15. </LinearGradientBrush>
  16. <SolidColorBrush x:Key="Tab_BG_Unable" Color="LightGray"/>
  17. <Style x:Key="TabItemFocusVisual">
  18. <Setter Property="Control.Template">
  19. <Setter.Value>
  20. <ControlTemplate>
  21. <Rectangle Stroke="#7FFFFFFF" StrokeDashArray="1 2" StrokeThickness="1" Margin="3,3,3,1" SnapsToDevicePixels="true"/>
  22. </ControlTemplate>
  23. </Setter.Value>
  24. </Setter>
  25. </Style>
  26. <Style TargetType="{x:Type TabControl}">
  27. <Setter Property="Padding" Value="5"/>
  28. <Setter Property="BorderThickness" Value="1"/>
  29. <Setter Property="BorderBrush" Value="{DynamicResource Tab_BD}"/>
  30. <Setter Property="Background" Value="{DynamicResource Tab_BG}"/>
  31. <Setter Property="HorizontalContentAlignment" Value="Center"/>
  32. <Setter Property="VerticalContentAlignment" Value="Center"/>
  33. <Setter Property="Template">
  34. <Setter.Value>
  35. <ControlTemplate TargetType="{x:Type TabControl}">
  36. <Grid>
  37. <Grid ClipToBounds="true" SnapsToDevicePixels="true" KeyboardNavigation.TabNavigation="Local">
  38. <Grid.ColumnDefinitions>
  39. <ColumnDefinition x:Name="ColumnDefinition0"/>
  40. <ColumnDefinition x:Name="ColumnDefinition1" Width="0"/>
  41. </Grid.ColumnDefinitions>
  42. <Grid.RowDefinitions>
  43. <RowDefinition x:Name="RowDefinition0" Height="Auto"/>
  44. <RowDefinition x:Name="RowDefinition1" Height="*"/>
  45. </Grid.RowDefinitions>
  46. <TabPanel x:Name="HeaderPanel" IsItemsHost="true" Panel.ZIndex="1" Grid.Column="0" Grid.Row="0" KeyboardNavigation.TabIndex="1"/>
  47. <Border x:Name="ContentPanel" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" Grid.Column="0" Grid.Row="1" KeyboardNavigation.DirectionalNavigation="Contained" KeyboardNavigation.TabIndex="2" KeyboardNavigation.TabNavigation="Local" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}">
  48. <ContentPresenter x:Name="PART_SelectedContentHost" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" ContentSource="SelectedContent"/>
  49. </Border>
  50. </Grid>
  51. </Grid>
  52. <ControlTemplate.Triggers>
  53. <Trigger Property="TabStripPlacement" Value="Bottom">
  54. <Setter Property="Grid.Row" TargetName="HeaderPanel" Value="1"/>
  55. <Setter Property="Grid.Row" TargetName="ContentPanel" Value="0"/>
  56. <Setter Property="Height" TargetName="RowDefinition0" Value="*"/>
  57. <Setter Property="Height" TargetName="RowDefinition1" Value="Auto"/>
  58. <Setter Property="Margin" TargetName="HeaderPanel" Value="2,0,2,2"/>
  59. </Trigger>
  60. <Trigger Property="TabStripPlacement" Value="Left">
  61. <Setter Property="Grid.Row" TargetName="HeaderPanel" Value="0"/>
  62. <Setter Property="Grid.Row" TargetName="ContentPanel" Value="0"/>
  63. <Setter Property="Grid.Column" TargetName="HeaderPanel" Value="0"/>
  64. <Setter Property="Grid.Column" TargetName="ContentPanel" Value="1"/>
  65. <Setter Property="Width" TargetName="ColumnDefinition0" Value="Auto"/>
  66. <Setter Property="Width" TargetName="ColumnDefinition1" Value="*"/>
  67. <Setter Property="Height" TargetName="RowDefinition0" Value="*"/>
  68. <Setter Property="Height" TargetName="RowDefinition1" Value="0"/>
  69. <Setter Property="Margin" TargetName="HeaderPanel" Value="2,2,0,2"/>
  70. </Trigger>
  71. <Trigger Property="TabStripPlacement" Value="Right">
  72. <Setter Property="Grid.Row" TargetName="HeaderPanel" Value="0"/>
  73. <Setter Property="Grid.Row" TargetName="ContentPanel" Value="0"/>
  74. <Setter Property="Grid.Column" TargetName="HeaderPanel" Value="1"/>
  75. <Setter Property="Grid.Column" TargetName="ContentPanel" Value="0"/>
  76. <Setter Property="Width" TargetName="ColumnDefinition0" Value="*"/>
  77. <Setter Property="Width" TargetName="ColumnDefinition1" Value="Auto"/>
  78. <Setter Property="Height" TargetName="RowDefinition0" Value="*"/>
  79. <Setter Property="Height" TargetName="RowDefinition1" Value="0"/>
  80. <Setter Property="Margin" TargetName="HeaderPanel" Value="0,2,2,2"/>
  81. </Trigger>
  82. <Trigger Property="IsEnabled" Value="false">
  83. <Setter Property="BorderBrush" TargetName="ContentPanel" Value="{DynamicResource Tab_BD_Unable}"/>
  84. <Setter Property="Background" TargetName="ContentPanel" Value="{DynamicResource Tab_BG_Unable}"/>
  85. <Setter Property="Foreground" Value="#FF9A9A9A"/>
  86. </Trigger>
  87. </ControlTemplate.Triggers>
  88. </ControlTemplate>
  89. </Setter.Value>
  90. </Setter>
  91. </Style>
  92. <Style TargetType="{x:Type TabItem}">
  93. <Setter Property="SnapsToDevicePixels" Value="True"/>
  94. <Setter Property="FocusVisualStyle" Value="{StaticResource TabItemFocusVisual}"/>
  95. <Setter Property="Foreground" Value="{DynamicResource SubMenu_FG}"/>
  96. <Setter Property="BorderBrush" Value="{DynamicResource SubMenu_BD_Highlight}"/>
  97. <Setter Property="Background" Value="{DynamicResource Tab_Header_BG}"/>
  98. <Setter Property="FontFamily" Value="Arial"/>
  99. <Setter Property="FontSize" Value="12"/>
  100. <Setter Property="MinWidth" Value="80"/>
  101. <Setter Property="MinHeight" Value="24"/>
  102. <Setter Property="Template">
  103. <Setter.Value>
  104. <ControlTemplate TargetType="{x:Type TabItem}">
  105. <Border x:Name="BG" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="2,2,0,0" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" CornerRadius="5,5,0,0" Background="{TemplateBinding Background}" Cursor="Hand">
  106. <Border x:Name="InnerBD" BorderBrush="{DynamicResource SubMenu_BD_Shadow}" BorderThickness="0,0,2,0" CornerRadius="4,4,0,0">
  107. <ContentPresenter x:Name="Content" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" ContentSource="Header" RecognizesAccessKey="True" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="10,3,10,1">
  108. </ContentPresenter>
  109. </Border>
  110. </Border>
  111. <ControlTemplate.Triggers>
  112. <Trigger Property="IsMouseOver" Value="true" SourceName="BG">
  113. <Setter Property="Background" TargetName="BG" Value="{DynamicResource Tab_Header_BG_MouseOver}"/>
  114. <Setter Property="Foreground" Value="{DynamicResource SubMenu_FG_Select}"/>
  115. </Trigger>
  116. <Trigger Property="IsSelected" Value="true">
  117. <Setter Property="Background" TargetName="BG" Value="{DynamicResource Tab_Header_BG_MouseOver}"/>
  118. <Setter Property="BorderBrush" TargetName="BG" Value="{DynamicResource SubMenu_BD_Highlight}"/>
  119. <Setter Property="BorderBrush" TargetName="InnerBD" Value="{DynamicResource SubMenu_BD_Shadow_Select}"/>
  120. <Setter Property="Foreground" Value="{DynamicResource FG_Black}"/>
  121. <Setter Property="FontSize" Value="14"/>
  122. <Setter Property="Effect" TargetName="Content">
  123. <Setter.Value>
  124. <DropShadowEffect BlurRadius="5" Color="White" ShadowDepth="0"/>
  125. </Setter.Value>
  126. </Setter>
  127. </Trigger>
  128. <Trigger Property="TabStripPlacement" Value="Bottom">
  129. <Setter Property="BorderThickness" TargetName="BG" Value="1,0,1,1"/>
  130. </Trigger>
  131. <Trigger Property="TabStripPlacement" Value="Left">
  132. <Setter Property="BorderThickness" TargetName="BG" Value="1,1,0,1"/>
  133. </Trigger>
  134. <Trigger Property="TabStripPlacement" Value="Right">
  135. <Setter Property="BorderThickness" TargetName="BG" Value="0,1,1,1"/>
  136. </Trigger>
  137. <MultiTrigger>
  138. <MultiTrigger.Conditions>
  139. <Condition Property="IsSelected" Value="true"/>
  140. <Condition Property="TabStripPlacement" Value="Top"/>
  141. </MultiTrigger.Conditions>
  142. <Setter Property="Margin" TargetName="Content" Value="10,3,10,1"/>
  143. </MultiTrigger>
  144. <MultiTrigger>
  145. <MultiTrigger.Conditions>
  146. <Condition Property="IsSelected" Value="true"/>
  147. <Condition Property="TabStripPlacement" Value="Bottom"/>
  148. </MultiTrigger.Conditions>
  149. <Setter Property="Margin" TargetName="Content" Value="5,1,5,0"/>
  150. </MultiTrigger>
  151. <MultiTrigger>
  152. <MultiTrigger.Conditions>
  153. <Condition Property="IsSelected" Value="true"/>
  154. <Condition Property="TabStripPlacement" Value="Left"/>
  155. </MultiTrigger.Conditions>
  156. <Setter Property="Margin" TargetName="Content" Value="5,0,6,0"/>
  157. </MultiTrigger>
  158. <MultiTrigger>
  159. <MultiTrigger.Conditions>
  160. <Condition Property="IsSelected" Value="true"/>
  161. <Condition Property="TabStripPlacement" Value="Right"/>
  162. </MultiTrigger.Conditions>
  163. <Setter Property="Margin" TargetName="Content" Value="6,0,5,0"/>
  164. </MultiTrigger>
  165. <Trigger Property="IsEnabled" Value="false">
  166. <Setter Property="BorderBrush" Value="{DynamicResource Tab_BD_Unable}"/>
  167. <Setter Property="Background" TargetName="BG" Value="{DynamicResource Tab_Header_BG_Unable}"/>
  168. <Setter Property="Foreground" Value="#FF9A9A9A"/>
  169. <Setter Property="Effect" TargetName="Content">
  170. <Setter.Value>
  171. <DropShadowEffect BlurRadius="0" ShadowDepth="1" Opacity="0"/>
  172. </Setter.Value>
  173. </Setter>
  174. </Trigger>
  175. </ControlTemplate.Triggers>
  176. </ControlTemplate>
  177. </Setter.Value>
  178. </Setter>
  179. </Style>
  180. </ResourceDictionary>