Advertisement
Guest User

Untitled

a guest
Apr 24th, 2010
434
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 11.36 KB | None | 0 0
  1. <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  2.          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  3.          xmlns:sys="clr-namespace:System;assembly=mscorlib"
  4.          xmlns:local="clr-namespace:Ircsil"
  5.          xmlns:conv="clr-namespace:Ircsil.Converters">
  6.  
  7.   <!-- Brushes -->
  8.  
  9.   <LinearGradientBrush x:Key="TabHeaderBackgroundBrush" StartPoint="0,0" EndPoint="0,1">
  10.     <GradientBrush.GradientStops>
  11.       <GradientStopCollection>
  12.         <GradientStop Color="#fff" Offset="0.0"/>
  13.         <GradientStop Color="#ddf" Offset="1.0"/>
  14.       </GradientStopCollection>
  15.     </GradientBrush.GradientStops>
  16.   </LinearGradientBrush>
  17.  
  18.   <SolidColorBrush x:Key="TabHeaderBorderBrush" Color="DarkGray"/>
  19.  
  20.   <LinearGradientBrush x:Key="ContentBackgroundBrush" StartPoint="0,0" EndPoint="0,1">
  21.     <GradientBrush.GradientStops>
  22.       <GradientStopCollection>
  23.         <GradientStop Color="#ddf" Offset="0.0"/>
  24.         <GradientStop Color="#eee" Offset="1.0"/>
  25.       </GradientStopCollection>
  26.     </GradientBrush.GradientStops>
  27.   </LinearGradientBrush>
  28.  
  29.   <!-- Tab Control -->
  30.  
  31.   <Style x:Key="ChromeTabControl" TargetType="{x:Type TabControl}">
  32.  
  33.     <!--<Setter Property="Template">
  34.      <Setter.Value>
  35.        <ControlTemplate TargetType="TabControl">
  36.          <DockPanel>
  37.  
  38.            <StackPanel Orientation="Horizontal" IsItemsHost="True" DockPanel.Dock="Top" Panel.ZIndex="1"/>
  39.  
  40.            <Border Background="{StaticResource ContentBackgroundBrush}">
  41.              <ContentPresenter ContentSource="SelectedContent" Panel.ZIndex="2"/>
  42.            </Border>
  43.  
  44.          </DockPanel>
  45.        </ControlTemplate>
  46.      </Setter.Value>
  47.    </Setter>-->
  48.  
  49.     <Setter Property="Background" Value="{StaticResource ContentBackgroundBrush}"/>
  50.     <Setter Property="BorderThickness" Value="1"/>
  51.     <Setter Property="BorderBrush" Value="{StaticResource TabHeaderBorderBrush}"/>
  52.  
  53.   </Style>
  54.  
  55.   <Style x:Key="{x:Type TabItem}" TargetType="TabItem">
  56.     <Setter Property="Template">
  57.       <Setter.Value>
  58.         <ControlTemplate TargetType="TabItem">
  59.  
  60.           <StackPanel Name="itemPanel" Orientation="Horizontal" Margin="0,0,-24,-1" Background="{StaticResource TabHeaderBackgroundBrush}" Opacity="0.4" SnapsToDevicePixels="True">
  61.  
  62.             <StackPanel.Resources>
  63.  
  64.               <Style TargetType="Path">
  65.                 <Setter Property="SnapsToDevicePixels" Value="True"/>
  66.               </Style>
  67.  
  68.               <sys:String x:Key="TabSideFillFigures">M 0,1 a 0.4,1.2 0 0 0 0.2828,-0.3515 l 0.0990,-0.2971 a 0.4,1.2 0 0 1 0.2828,-0.3515 l 0,1 Z</sys:String>
  69.               <sys:String x:Key="TabSideBorderFigures">M 0,1 a 0.4,1.2 0 0 0 0.2828,-0.3515 l 0.0990,-0.2971 a 0.4,1.2 0 0 1 0.2828,-0.3515</sys:String>
  70.  
  71.               <CombinedGeometry x:Key="TabSideFillGeometry" GeometryCombineMode="Intersect">
  72.                 <CombinedGeometry.Geometry1>
  73.                   <PathGeometry Figures="{Binding Source={StaticResource TabSideFillFigures}}"/>
  74.                 </CombinedGeometry.Geometry1>
  75.                 <CombinedGeometry.Geometry2>
  76.                   <RectangleGeometry Rect="0.05,0,1,1"/>
  77.                 </CombinedGeometry.Geometry2>
  78.                 <CombinedGeometry.Transform>
  79.                   <ScaleTransform ScaleX="{Binding RenderSize.Height, ElementName=textBorder}" ScaleY="{Binding RenderSize.Height, ElementName=textBorder}"/>
  80.                 </CombinedGeometry.Transform>
  81.               </CombinedGeometry>
  82.  
  83.               <PathGeometry x:Key="TabSideBorderGeometry" Figures="{Binding Source={StaticResource TabSideBorderFigures}}">
  84.                 <PathGeometry.Transform>
  85.                   <ScaleTransform ScaleX="{Binding RenderSize.Height, ElementName=textBorder}" ScaleY="{Binding RenderSize.Height, ElementName=textBorder}"/>
  86.                 </PathGeometry.Transform>
  87.               </PathGeometry>
  88.  
  89.               <RectangleGeometry x:Key="ItemBoundsGeometryOLD">
  90.                 <RectangleGeometry.Rect>
  91.                   <MultiBinding Converter="{StaticResource WidthHeightToRectConverter}">
  92.                     <Binding Path="ActualWidth" ElementName="itemPanel"/>
  93.                     <Binding Path="ActualHeight" ElementName="itemPanel"/>
  94.                   </MultiBinding>
  95.                 </RectangleGeometry.Rect>
  96.               </RectangleGeometry>
  97.  
  98.               <CombinedGeometry x:Key="ItemBoundsGeometry" GeometryCombineMode="Union">
  99.                 <CombinedGeometry.Geometry1>
  100.                   <RectangleGeometry>
  101.                     <RectangleGeometry.Rect>
  102.                       <MultiBinding Converter="{StaticResource WidthHeightToRectConverter}">
  103.                         <Binding Path="ActualWidth" ElementName="textBorder"/>
  104.                         <Binding Path="ActualHeight" ElementName="textBorder"/>
  105.                       </MultiBinding>
  106.                     </RectangleGeometry.Rect>
  107.                     <RectangleGeometry.Transform>
  108.                       <TransformGroup>
  109.                         <TranslateTransform X="{Binding ActualWidth, ElementName=leftSideBorderPath}"/>
  110.                         <TranslateTransform X="-1"/>
  111.                       </TransformGroup>
  112.                     </RectangleGeometry.Transform>
  113.                   </RectangleGeometry>
  114.                 </CombinedGeometry.Geometry1>
  115.                 <CombinedGeometry.Geometry2>
  116.                   <CombinedGeometry GeometryCombineMode="Union">
  117.                     <CombinedGeometry.Geometry1>
  118.                       <PathGeometry Figures="{Binding Source={StaticResource TabSideFillFigures}}">
  119.                         <PathGeometry.Transform>
  120.                           <TransformGroup>
  121.                             <ScaleTransform ScaleX="{Binding RenderSize.Height, ElementName=textBorder}" ScaleY="{Binding RenderSize.Height, ElementName=textBorder}"/>
  122.                           </TransformGroup>
  123.                         </PathGeometry.Transform>
  124.                       </PathGeometry>
  125.                     </CombinedGeometry.Geometry1>
  126.                     <CombinedGeometry.Geometry2>
  127.                       <PathGeometry Figures="{Binding Source={StaticResource TabSideFillFigures}}">
  128.                         <PathGeometry.Transform>
  129.                           <TransformGroup>
  130.                             <ScaleTransform ScaleX="-1"/>
  131.                             <ScaleTransform ScaleX="{Binding RenderSize.Height, ElementName=textBorder}" ScaleY="{Binding RenderSize.Height, ElementName=textBorder}"/>
  132.                             <TranslateTransform X="{Binding ActualWidth, ElementName=leftSideBorderPath}"/>
  133.                             <TranslateTransform X="{Binding ActualWidth, ElementName=textBorder}"/>
  134.                             <TranslateTransform X="{Binding ActualWidth, ElementName=rightSideBorderPath}"/>
  135.                             <TranslateTransform X="-2"/>
  136.                           </TransformGroup>
  137.                         </PathGeometry.Transform>
  138.                       </PathGeometry>
  139.                     </CombinedGeometry.Geometry2>
  140.                   </CombinedGeometry>
  141.                 </CombinedGeometry.Geometry2>
  142.               </CombinedGeometry>
  143.  
  144.               <PathGeometry x:Key="ExcludeLeftSideGeometry" Figures="{Binding Source={StaticResource TabSideFillFigures}}">
  145.                 <PathGeometry.Transform>
  146.                   <TransformGroup>
  147.                     <ScaleTransform ScaleX="-1"/>
  148.                     <ScaleTransform ScaleX="{Binding RenderSize.Height, ElementName=textBorder}" ScaleY="{Binding RenderSize.Height, ElementName=textBorder}"/>
  149.                     <TranslateTransform x:Name="leftOverlap" X="0"/>
  150.                   </TransformGroup>
  151.                 </PathGeometry.Transform>
  152.               </PathGeometry>
  153.  
  154.               <PathGeometry x:Key="ExcludeRightSideGeometry" Figures="{Binding Source={StaticResource TabSideFillFigures}}">
  155.                 <PathGeometry.Transform>
  156.                   <TransformGroup>
  157.                     <TranslateTransform x:Name="rightOverlap" X="0"/>
  158.                     <TranslateTransform X="-0.6646"/>
  159.                     <ScaleTransform ScaleX="{Binding RenderSize.Height, ElementName=textBorder}" ScaleY="{Binding RenderSize.Height, ElementName=textBorder}"/>
  160.                     <TranslateTransform X="{Binding ActualWidth, ElementName=itemPanel}"/>
  161.                     <TranslateTransform X="2"/>
  162.                   </TransformGroup>
  163.                 </PathGeometry.Transform>
  164.               </PathGeometry>
  165.  
  166.               <CombinedGeometry x:Key="ExcludeBothSidesGeometry" Geometry1="{StaticResource ExcludeLeftSideGeometry}" Geometry2="{StaticResource ExcludeRightSideGeometry}" GeometryCombineMode="Union"/>
  167.  
  168.               <CombinedGeometry x:Key="ClipLeftSideGeometry" GeometryCombineMode="Exclude" Geometry1="{StaticResource ItemBoundsGeometry}" Geometry2="{StaticResource ExcludeLeftSideGeometry}"/>
  169.  
  170.               <CombinedGeometry x:Key="ClipRightSideGeometry" GeometryCombineMode="Exclude" Geometry1="{StaticResource ItemBoundsGeometry}" Geometry2="{StaticResource ExcludeRightSideGeometry}"/>
  171.  
  172.               <CombinedGeometry x:Key="ClipBothSidesGeometry" GeometryCombineMode="Exclude" Geometry1="{StaticResource ItemBoundsGeometry}" Geometry2="{StaticResource ExcludeBothSidesGeometry}"/>
  173.  
  174.             </StackPanel.Resources>
  175.  
  176.             <Path Name="leftSideBorderPath" Margin="0,0,0,-1" SnapsToDevicePixels="True" Data="{StaticResource TabSideBorderGeometry}" Stroke="{StaticResource TabHeaderBorderBrush}" Panel.ZIndex="1">
  177.               <Path.LayoutTransform>
  178.                 <ScaleTransform ScaleX="1"/>
  179.               </Path.LayoutTransform>
  180.             </Path>
  181.  
  182.             <Border Name="textBorder" Margin="-1,0,-1,0" Padding="2" SnapsToDevicePixels="True" BorderThickness="0,1,0,0" BorderBrush="{StaticResource TabHeaderBorderBrush}" Panel.ZIndex="2">
  183.               <StackPanel Orientation="Horizontal">
  184.                 <ContentPresenter ContentSource="Header" HorizontalAlignment="Center" VerticalAlignment="Center"
  185.                         RecognizesAccessKey="True" TextBlock.FontSize="14"/>
  186.               </StackPanel>
  187.             </Border>
  188.  
  189.             <Path Name="rightSideBorderPath" Margin="0,0,0,-1" SnapsToDevicePixels="True" Data="{StaticResource TabSideBorderGeometry}" Stroke="{StaticResource TabHeaderBorderBrush}" Panel.ZIndex="1">
  190.               <Path.LayoutTransform>
  191.                 <ScaleTransform ScaleX="-1"/>
  192.               </Path.LayoutTransform>
  193.             </Path>
  194.  
  195.           </StackPanel>
  196.  
  197.           <ControlTemplate.Triggers>
  198.  
  199.             <Trigger Property="IsMouseOver" Value="True">
  200.               <!--<Setter TargetName="leftSideFillPath" Property="Fill" Value="Gray" />
  201.                                  <Setter TargetName="rightSideFillPath" Property="Fill" Value="Gray" />
  202.                                  <Setter TargetName="textBorder" Property="Background" Value="Gray" />-->
  203.               <Setter TargetName="itemPanel" Property="Opacity" Value="0.6"/>
  204.             </Trigger>
  205.  
  206.             <Trigger Property="IsSelected" Value="True">
  207.               <Setter TargetName="itemPanel" Property="Opacity" Value="1.0"/>
  208.             </Trigger>
  209.  
  210.             <Trigger Property="IsEnabled" Value="False">
  211.               <Setter Property="Foreground" Value="Gray" />
  212.             </Trigger>
  213.  
  214.           </ControlTemplate.Triggers>
  215.  
  216.         </ControlTemplate>
  217.       </Setter.Value>
  218.     </Setter>
  219.   </Style>
  220.  
  221. </ResourceDictionary>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement