TabControlStyle.xaml 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  2. <Style x:Key="TabControlWithUnderLineStyle" TargetType="{x:Type TabControl}">
  3. <Setter Property="Padding" Value="2" />
  4. <Setter Property="HorizontalContentAlignment" Value="Center" />
  5. <Setter Property="VerticalContentAlignment" Value="Center" />
  6. <Setter Property="Background" Value="Transparent" />
  7. <Setter Property="BorderBrush" Value="#FFACACAC" />
  8. <Setter Property="BorderThickness" Value="0,0,0,1" />
  9. <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" />
  10. <Setter Property="Template">
  11. <Setter.Value>
  12. <ControlTemplate TargetType="{x:Type TabControl}">
  13. <Grid
  14. x:Name="templateRoot"
  15. ClipToBounds="True"
  16. KeyboardNavigation.TabNavigation="Local"
  17. SnapsToDevicePixels="True">
  18. <Grid.ColumnDefinitions>
  19. <ColumnDefinition x:Name="ColumnDefinition0" />
  20. <ColumnDefinition x:Name="ColumnDefinition1" Width="0" />
  21. </Grid.ColumnDefinitions>
  22. <Grid.RowDefinitions>
  23. <RowDefinition x:Name="RowDefinition0" Height="Auto" />
  24. <RowDefinition x:Name="RowDefinition1" Height="*" />
  25. </Grid.RowDefinitions>
  26. <!-- 加滑轨配合滑轨样式可实现箭头左右滚动的菜单栏 -->
  27. <!--<ScrollViewer Margin="140 0 140 0" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled">-->
  28. <TabPanel
  29. x:Name="HeaderPanel"
  30. Grid.Row="0"
  31. Grid.Column="0"
  32. HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
  33. VerticalAlignment="{TemplateBinding VerticalAlignment}"
  34. Panel.ZIndex="1"
  35. Background="Transparent"
  36. IsItemsHost="True"
  37. KeyboardNavigation.TabIndex="1" />
  38. <!--</ScrollViewer>-->
  39. <!-- 页头和中间内容的分割线 -->
  40. <Line
  41. Margin="0,0,0,1"
  42. VerticalAlignment="Bottom"
  43. SnapsToDevicePixels="True"
  44. Stroke="Transparent"
  45. StrokeThickness="0.1"
  46. X1="0"
  47. X2="{Binding ActualWidth, RelativeSource={RelativeSource Self}}" />
  48. <Border
  49. x:Name="ContentPanel"
  50. Grid.Row="1"
  51. Grid.Column="0"
  52. Background="{TemplateBinding Background}"
  53. BorderBrush="{TemplateBinding BorderBrush}"
  54. BorderThickness="{TemplateBinding BorderThickness}"
  55. KeyboardNavigation.DirectionalNavigation="Contained"
  56. KeyboardNavigation.TabIndex="2"
  57. KeyboardNavigation.TabNavigation="Local">
  58. <ContentPresenter
  59. x:Name="PART_SelectedContentHost"
  60. Margin="0"
  61. VerticalAlignment="Stretch"
  62. Content="{TemplateBinding SelectedContent}"
  63. ContentSource="SelectedContent"
  64. ContentStringFormat="{TemplateBinding SelectedContentStringFormat}"
  65. ContentTemplate="{TemplateBinding SelectedContentTemplate}"
  66. SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
  67. </Border>
  68. </Grid>
  69. <ControlTemplate.Triggers>
  70. <Trigger Property="TabStripPlacement" Value="Bottom">
  71. <Setter TargetName="HeaderPanel" Property="Grid.Row" Value="1" />
  72. <Setter TargetName="ContentPanel" Property="Grid.Row" Value="0" />
  73. <Setter TargetName="RowDefinition0" Property="Height" Value="*" />
  74. <Setter TargetName="RowDefinition1" Property="Height" Value="Auto" />
  75. </Trigger>
  76. <Trigger Property="TabStripPlacement" Value="Left">
  77. <Setter TargetName="HeaderPanel" Property="Grid.Row" Value="0" />
  78. <Setter TargetName="ContentPanel" Property="Grid.Row" Value="0" />
  79. <Setter TargetName="HeaderPanel" Property="Grid.Column" Value="0" />
  80. <Setter TargetName="ContentPanel" Property="Grid.Column" Value="1" />
  81. <Setter TargetName="ColumnDefinition0" Property="Width" Value="Auto" />
  82. <Setter TargetName="ColumnDefinition1" Property="Width" Value="*" />
  83. <Setter TargetName="RowDefinition0" Property="Height" Value="*" />
  84. <Setter TargetName="RowDefinition1" Property="Height" Value="0" />
  85. <Setter TargetName="HeaderPanel" Property="VerticalAlignment" Value="Top" />
  86. </Trigger>
  87. <Trigger Property="TabStripPlacement" Value="Right">
  88. <Setter TargetName="HeaderPanel" Property="Grid.Row" Value="0" />
  89. <Setter TargetName="ContentPanel" Property="Grid.Row" Value="0" />
  90. <Setter TargetName="HeaderPanel" Property="Grid.Column" Value="1" />
  91. <Setter TargetName="ContentPanel" Property="Grid.Column" Value="0" />
  92. <Setter TargetName="ColumnDefinition0" Property="Width" Value="*" />
  93. <Setter TargetName="ColumnDefinition1" Property="Width" Value="Auto" />
  94. <Setter TargetName="RowDefinition0" Property="Height" Value="*" />
  95. <Setter TargetName="RowDefinition1" Property="Height" Value="0" />
  96. </Trigger>
  97. <Trigger Property="IsEnabled" Value="False">
  98. <Setter TargetName="templateRoot" Property="TextElement.Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
  99. </Trigger>
  100. </ControlTemplate.Triggers>
  101. </ControlTemplate>
  102. </Setter.Value>
  103. </Setter>
  104. <Setter Property="KeyboardNavigation.DirectionalNavigation" Value="Cycle" />
  105. <Setter Property="KeyboardNavigation.TabNavigation" Value="Cycle" />
  106. </Style>
  107. </ResourceDictionary>