Tab.xaml 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365
  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="#FF539CD2"/>
  8. <SolidColorBrush x:Key="Tab_BD" Color="#FF233661"/>
  9. <SolidColorBrush x:Key="Tab_BD_Highlight" Color="#FFB3B9D1"/>
  10. <SolidColorBrush x:Key="Tab_Header_BG_MouseOver" Color="#FF57A3D4"/>
  11. <SolidColorBrush x:Key="Tab_Header_BG_Select" Color="#FF004F89"/>
  12. <SolidColorBrush x:Key="Tab_BD_Select" Color="#FFF9F9FA"/>
  13. <SolidColorBrush x:Key="Tab_BD_Highlight_Select" Color="#00B3B9D1"/>
  14. <SolidColorBrush x:Key="Tab_FG_Select" Color="#FFF9F9FA"/>
  15. <SolidColorBrush x:Key="Tab_BG" Color="#FFDAE5F1"/>
  16. <SolidColorBrush x:Key="Tab_BD_Unable" Color="Gray"/>
  17. <LinearGradientBrush x:Key="Tab_Header_BG_Unable" EndPoint="0.5,1" StartPoint="0.5,0">
  18. <GradientStop Color="#FFB1B1B1" Offset="0"/>
  19. <GradientStop Color="#FFDADADA" Offset="1"/>
  20. </LinearGradientBrush>
  21. <SolidColorBrush x:Key="Tab_BG_Unable" Color="LightGray"/>
  22. <Style x:Key="TabItemFocusVisual">
  23. <Setter Property="Control.Template">
  24. <Setter.Value>
  25. <ControlTemplate>
  26. <Rectangle Stroke="#7FFFFFFF" StrokeDashArray="1 2" StrokeThickness="1" Margin="3,3,3,1" SnapsToDevicePixels="true"/>
  27. </ControlTemplate>
  28. </Setter.Value>
  29. </Setter>
  30. </Style>
  31. <Style TargetType="{x:Type TabControl}">
  32. <Setter Property="Padding" Value="5"/>
  33. <Setter Property="BorderThickness" Value="1"/>
  34. <Setter Property="BorderBrush" Value="{DynamicResource Tab_BD}"/>
  35. <Setter Property="Background" Value="{DynamicResource Tab_BG}"/>
  36. <Setter Property="HorizontalContentAlignment" Value="Center"/>
  37. <Setter Property="VerticalContentAlignment" Value="Center"/>
  38. <Setter Property="Border.CornerRadius" Value="5"/>
  39. <Setter Property="Template">
  40. <Setter.Value>
  41. <ControlTemplate TargetType="{x:Type TabControl}">
  42. <Grid>
  43. <Grid ClipToBounds="true" SnapsToDevicePixels="true" KeyboardNavigation.TabNavigation="Local">
  44. <Grid.ColumnDefinitions>
  45. <ColumnDefinition x:Name="ColumnDefinition0"/>
  46. <ColumnDefinition x:Name="ColumnDefinition1" Width="0"/>
  47. </Grid.ColumnDefinitions>
  48. <Grid.RowDefinitions>
  49. <RowDefinition x:Name="RowDefinition0" Height="Auto"/>
  50. <RowDefinition x:Name="RowDefinition1" Height="*"/>
  51. </Grid.RowDefinitions>
  52. <TabPanel x:Name="HeaderPanel" Margin="3,0,0,0" IsItemsHost="true" Panel.ZIndex="1" Grid.Column="0" Grid.Row="0" KeyboardNavigation.TabIndex="1"/>
  53. <Border x:Name="ContentPanel" CornerRadius="{TemplateBinding Border.CornerRadius}" 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}">
  54. <ContentPresenter x:Name="PART_SelectedContentHost" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" ContentSource="SelectedContent"/>
  55. </Border>
  56. </Grid>
  57. </Grid>
  58. <ControlTemplate.Triggers>
  59. <Trigger Property="TabStripPlacement" Value="Bottom">
  60. <Setter Property="Grid.Row" TargetName="HeaderPanel" Value="1"/>
  61. <Setter Property="Grid.Row" TargetName="ContentPanel" Value="0"/>
  62. <Setter Property="Height" TargetName="RowDefinition0" Value="*"/>
  63. <Setter Property="Height" TargetName="RowDefinition1" Value="Auto"/>
  64. <Setter Property="Margin" TargetName="HeaderPanel" Value="2,0,2,2"/>
  65. </Trigger>
  66. <Trigger Property="TabStripPlacement" Value="Left">
  67. <Setter Property="Grid.Row" TargetName="HeaderPanel" Value="0"/>
  68. <Setter Property="Grid.Row" TargetName="ContentPanel" Value="0"/>
  69. <Setter Property="Grid.Column" TargetName="HeaderPanel" Value="0"/>
  70. <Setter Property="Grid.Column" TargetName="ContentPanel" Value="1"/>
  71. <Setter Property="Width" TargetName="ColumnDefinition0" Value="Auto"/>
  72. <Setter Property="Width" TargetName="ColumnDefinition1" Value="*"/>
  73. <Setter Property="Height" TargetName="RowDefinition0" Value="*"/>
  74. <Setter Property="Height" TargetName="RowDefinition1" Value="0"/>
  75. <Setter Property="Margin" TargetName="HeaderPanel" Value="2,2,0,2"/>
  76. </Trigger>
  77. <Trigger Property="TabStripPlacement" Value="Right">
  78. <Setter Property="Grid.Row" TargetName="HeaderPanel" Value="0"/>
  79. <Setter Property="Grid.Row" TargetName="ContentPanel" Value="0"/>
  80. <Setter Property="Grid.Column" TargetName="HeaderPanel" Value="1"/>
  81. <Setter Property="Grid.Column" TargetName="ContentPanel" Value="0"/>
  82. <Setter Property="Width" TargetName="ColumnDefinition0" Value="*"/>
  83. <Setter Property="Width" TargetName="ColumnDefinition1" Value="Auto"/>
  84. <Setter Property="Height" TargetName="RowDefinition0" Value="*"/>
  85. <Setter Property="Height" TargetName="RowDefinition1" Value="0"/>
  86. <Setter Property="Margin" TargetName="HeaderPanel" Value="0,2,2,2"/>
  87. </Trigger>
  88. <Trigger Property="IsEnabled" Value="false">
  89. <Setter Property="BorderBrush" TargetName="ContentPanel" Value="{DynamicResource Tab_BD_Unable}"/>
  90. <Setter Property="Background" TargetName="ContentPanel" Value="{DynamicResource Tab_BG_Unable}"/>
  91. <Setter Property="Foreground" Value="#FF9A9A9A"/>
  92. </Trigger>
  93. </ControlTemplate.Triggers>
  94. </ControlTemplate>
  95. </Setter.Value>
  96. </Setter>
  97. </Style>
  98. <Style TargetType="{x:Type TabItem}">
  99. <Setter Property="SnapsToDevicePixels" Value="True"/>
  100. <Setter Property="FocusVisualStyle" Value="{StaticResource TabItemFocusVisual}"/>
  101. <Setter Property="Foreground" Value="{DynamicResource FG_White}"/>
  102. <Setter Property="BorderBrush" Value="{DynamicResource Tab_BD}"/>
  103. <Setter Property="Background" Value="{DynamicResource Tab_Header_BG}"/>
  104. <Setter Property="FontFamily" Value="Arial"/>
  105. <Setter Property="FontSize" Value="12"/>
  106. <Setter Property="MinWidth" Value="60"/>
  107. <Setter Property="MinHeight" Value="24"/>
  108. <Setter Property="Template">
  109. <Setter.Value>
  110. <ControlTemplate TargetType="{x:Type TabItem}">
  111. <Border x:Name="BG" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1,1,1,0" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" CornerRadius="5,5,0,0" Background="{TemplateBinding Background}" Cursor="Hand">
  112. <Border x:Name="InnerBD" BorderBrush="{DynamicResource Tab_BD_Highlight}" BorderThickness="1,1,0,0" CornerRadius="4,4,0,0">
  113. <ContentPresenter x:Name="Content" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" ContentSource="Header" RecognizesAccessKey="True" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="10,3,10,1">
  114. </ContentPresenter>
  115. </Border>
  116. </Border>
  117. <ControlTemplate.Triggers>
  118. <Trigger Property="IsMouseOver" Value="true" SourceName="BG">
  119. <Setter Property="Background" TargetName="BG" Value="{DynamicResource Tab_Header_BG_MouseOver}"/>
  120. </Trigger>
  121. <Trigger Property="IsSelected" Value="true">
  122. <Setter Property="Background" TargetName="BG" Value="{DynamicResource Tab_Header_BG_Select}"/>
  123. <Setter Property="BorderBrush" TargetName="BG" Value="{DynamicResource Tab_BD_Select}"/>
  124. <Setter Property="BorderBrush" TargetName="InnerBD" Value="{DynamicResource Tab_BD_Highlight_Select}"/>
  125. <Setter Property="Foreground" Value="{DynamicResource Tab_FG_Select}"/>
  126. <Setter Property="FontSize" Value="14"/>
  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. <SolidColorBrush x:Key="TabControl.HeaderBackGround" Color="#FF10a8ab" />
  181. <SolidColorBrush x:Key="TabControl.ActivedItemHeaderBackground" Color="#FF454545" />
  182. <Style x:Key="UseTab" TargetType="{x:Type TabControl}" BasedOn="{StaticResource {x:Type TabControl}}">
  183. <Setter Property="SnapsToDevicePixels" Value="True" />
  184. <Setter Property="Template">
  185. <Setter.Value>
  186. <ControlTemplate TargetType="{x:Type TabControl}">
  187. <Grid>
  188. <Border Background="Transparent" BorderThickness="1" BorderBrush="Black" CornerRadius="10" Margin="-1">
  189. <Border.Effect>
  190. <BlurEffect />
  191. </Border.Effect>
  192. </Border>
  193. <Border BorderBrush="Black" BorderThickness="1" CornerRadius="10" ClipToBounds="True" SnapsToDevicePixels="True">
  194. <Grid>
  195. <Grid.RowDefinitions>
  196. <RowDefinition Name="ROW0" />
  197. <RowDefinition Name="ROW1" />
  198. </Grid.RowDefinitions>
  199. <Grid.ColumnDefinitions>
  200. <ColumnDefinition Name="COL0" />
  201. <ColumnDefinition Name="COL1" />
  202. </Grid.ColumnDefinitions>
  203. <Border Background="{StaticResource TabControl.HeaderBackGround}" Name="Mask" CornerRadius="10,10,0,0" />
  204. <Border Padding="10,5" Name="TP">
  205. <TabPanel IsItemsHost="True">
  206. <TabPanel.OpacityMask>
  207. <VisualBrush Visual="{Binding ElementName=Mask}" />
  208. </TabPanel.OpacityMask>
  209. </TabPanel>
  210. </Border>
  211. <Grid Grid.Row="0" Name="TC">
  212. <Border Name="EB" Margin="-1" BorderThickness="0,1,0,0" BorderBrush="#CC000000">
  213. <Border.Effect>
  214. <BlurEffect Radius="5" />
  215. </Border.Effect>
  216. </Border>
  217. <ContentPresenter x:Name="PART_SelectedContentHost" ContentSource="SelectedContent" Margin="10" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
  218. </Grid>
  219. </Grid>
  220. </Border>
  221. </Grid>
  222. <ControlTemplate.Triggers>
  223. <Trigger Property="TabStripPlacement" Value="Top">
  224. <Setter TargetName="ROW0" Property="Height" Value="auto" />
  225. <Setter TargetName="Mask" Property="Grid.Row" Value="0" />
  226. <Setter TargetName="Mask" Property="Grid.Column" Value="0" />
  227. <Setter TargetName="Mask" Property="Grid.ColumnSpan" Value="2" />
  228. <Setter TargetName="Mask" Property="CornerRadius" Value="10,10,0,0" />
  229. <Setter TargetName="TP" Property="Grid.Row" Value="0" />
  230. <Setter TargetName="TP" Property="Grid.Column" Value="0" />
  231. <Setter TargetName="TP" Property="Grid.ColumnSpan" Value="2" />
  232. <Setter TargetName="TC" Property="Grid.Column" Value="0" />
  233. <Setter TargetName="TC" Property="Grid.Row" Value="1" />
  234. <Setter TargetName="TC" Property="Grid.ColumnSpan" Value="2" />
  235. <Setter TargetName="EB" Property="BorderThickness" Value="0,1,0,0" />
  236. </Trigger>
  237. <Trigger Property="TabStripPlacement" Value="Bottom">
  238. <Setter TargetName="ROW1" Property="Height" Value="auto" />
  239. <Setter TargetName="Mask" Property="Grid.Row" Value="1" />
  240. <Setter TargetName="Mask" Property="Grid.Column" Value="0" />
  241. <Setter TargetName="Mask" Property="Grid.ColumnSpan" Value="2" />
  242. <Setter TargetName="Mask" Property="CornerRadius" Value="0,0,10,10" />
  243. <Setter TargetName="TP" Property="Grid.Row" Value="1" />
  244. <Setter TargetName="TP" Property="Grid.Column" Value="0" />
  245. <Setter TargetName="TP" Property="Grid.ColumnSpan" Value="2" />
  246. <Setter TargetName="TC" Property="Grid.Column" Value="0" />
  247. <Setter TargetName="TC" Property="Grid.Row" Value="0" />
  248. <Setter TargetName="TC" Property="Grid.ColumnSpan" Value="2" />
  249. <Setter TargetName="EB" Property="BorderThickness" Value="0,0,0,1" />
  250. </Trigger>
  251. <Trigger Property="TabStripPlacement" Value="Left">
  252. <Setter TargetName="COL0" Property="Width" Value="auto" />
  253. <Setter TargetName="Mask" Property="Grid.Row" Value="0" />
  254. <Setter TargetName="Mask" Property="Grid.Column" Value="0" />
  255. <Setter TargetName="Mask" Property="Grid.RowSpan" Value="2" />
  256. <Setter TargetName="Mask" Property="CornerRadius" Value="10,0,0,10" />
  257. <Setter TargetName="TP" Property="Grid.Row" Value="0" />
  258. <Setter TargetName="TP" Property="Grid.Column" Value="0" />
  259. <Setter TargetName="TP" Property="Grid.RowSpan" Value="2" />
  260. <Setter TargetName="TC" Property="Grid.Column" Value="1" />
  261. <Setter TargetName="TC" Property="Grid.Row" Value="0" />
  262. <Setter TargetName="TC" Property="Grid.RowSpan" Value="2" />
  263. <Setter TargetName="EB" Property="BorderThickness" Value="1,0,0,0" />
  264. </Trigger>
  265. <Trigger Property="TabStripPlacement" Value="Right">
  266. <Setter TargetName="COL1" Property="Width" Value="auto" />
  267. <Setter TargetName="Mask" Property="Grid.Row" Value="0" />
  268. <Setter TargetName="Mask" Property="Grid.Column" Value="1" />
  269. <Setter TargetName="Mask" Property="Grid.RowSpan" Value="2" />
  270. <Setter TargetName="Mask" Property="CornerRadius" Value="0,10,10,0" />
  271. <Setter TargetName="TP" Property="Grid.Row" Value="0" />
  272. <Setter TargetName="TP" Property="Grid.Column" Value="1" />
  273. <Setter TargetName="TP" Property="Grid.RowSpan" Value="2" />
  274. <Setter TargetName="TC" Property="Grid.Column" Value="0" />
  275. <Setter TargetName="TC" Property="Grid.Row" Value="0" />
  276. <Setter TargetName="TC" Property="Grid.RowSpan" Value="2" />
  277. <Setter TargetName="EB" Property="BorderThickness" Value="0,0,1,0" />
  278. </Trigger>
  279. </ControlTemplate.Triggers>
  280. </ControlTemplate>
  281. </Setter.Value>
  282. </Setter>
  283. </Style>
  284. <!--<Style TargetType="{x:Type TabItem}" BasedOn="{StaticResource {x:Type TabItem}}">
  285. <Setter Property="TextBlock.Foreground" Value="White" />
  286. <Setter Property="TextBlock.FontSize" Value="14" />
  287. <Setter Property="TextBlock.FontWeight" Value="Bold" />
  288. <Setter Property="Template">
  289. <Setter.Value>
  290. <ControlTemplate TargetType="{x:Type TabItem}">
  291. <Border Padding="2" x:Name="bbb" SnapsToDevicePixels="True" ClipToBounds="True" CornerRadius="15" >
  292. <ContentPresenter x:Name="contentPresenter"
  293. ContentSource="Header"
  294. Focusable="False"
  295. HorizontalAlignment="{Binding HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"
  296. Margin="{TemplateBinding Padding}"
  297. RecognizesAccessKey="True"
  298. SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
  299. VerticalAlignment="{Binding VerticalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}">
  300. </ContentPresenter>
  301. </Border>
  302. <ControlTemplate.Triggers>
  303. <Trigger Property="IsSelected" Value="True">
  304. <Setter TargetName="bbb" Property="Background" Value="#FF333333" />
  305. <Setter TargetName="bbb" Property="Padding" Value="3" />
  306. </Trigger>
  307. <Trigger Property="TabStripPlacement" Value="Left">
  308. <Setter Property="LayoutTransform">
  309. <Setter.Value>
  310. <RotateTransform Angle="-90" />
  311. </Setter.Value>
  312. </Setter>
  313. </Trigger>
  314. <Trigger Property="TabStripPlacement" Value="Right">
  315. <Setter Property="LayoutTransform">
  316. <Setter.Value>
  317. <RotateTransform Angle="90" />
  318. </Setter.Value>
  319. </Setter>
  320. </Trigger>
  321. </ControlTemplate.Triggers>
  322. </ControlTemplate>
  323. </Setter.Value>
  324. </Setter>
  325. </Style>-->
  326. </ResourceDictionary>