zoukankan      html  css  js  c++  java
  • DataGrid 样式

      1     <SolidColorBrush x:Key="OutsideFontColor" Color="#FF000000" />
      2 
      3     <LinearGradientBrush x:Key="NormalBrush" EndPoint="0.5,1" StartPoint="0.5,0">
      4         <GradientStop Color="#FFFFFFFF" Offset="0" />
      5         <GradientStop Color="#FF8AAEDA" Offset="0.521" />
      6         <GradientStop Color="#FFC6D6EC" Offset="0.194" />
      7         <GradientStop Color="#FFB4C9E5" Offset="0.811" />
      8         <GradientStop Color="#FFB7C8E0" Offset="0.507" />
      9         <GradientStop Color="#FFD1DEF0" Offset="1" />
     10     </LinearGradientBrush>
     11     <LinearGradientBrush x:Key="NormalBorderBrush" EndPoint="0.5,0" StartPoint="0.5,1">
     12         <GradientStop Color="#FF84B2D4" />
     13         <GradientStop Color="#FFADC7DE" Offset="1" />
     14     </LinearGradientBrush>
     15     <SolidColorBrush x:Key="NormalHighlightBrush" Color="#FFFFFFFF"/>
     16     <LinearGradientBrush x:Key="MouseOverBrush" EndPoint="0.5,1" StartPoint="0.5,0">
     17         <GradientStop Color="#FFFFFFFF" Offset="0" />
     18         <GradientStop Color="#FFFEF3B5" Offset="0.318" />
     19         <GradientStop Color="#FFFFEB70" Offset="0.488" />
     20         <GradientStop Color="#FFFFD02E" Offset="0.502" />
     21         <GradientStop Color="#FFFFD932" Offset="0.834" />
     22         <GradientStop Color="#FFFFF48B" Offset="1" />
     23     </LinearGradientBrush>
     24     <LinearGradientBrush x:Key="MouseOverBorderBrush" EndPoint="0.5,1" StartPoint="0.5,0">
     25         <GradientStop Color="#FFEEE8CF" Offset="0" />
     26         <GradientStop Color="#FFC4AF8C" Offset="0.536" />
     27         <GradientStop Color="#FFDCD1BF" Offset="1" />
     28     </LinearGradientBrush>
     29     <LinearGradientBrush x:Key="MouseOverHighlightBrush" EndPoint="0.5,1" StartPoint="0.5,0">
     30         <GradientStop Color="#FFFFFFFB" Offset="0" />
     31         <GradientStop Color="#FFFEF3B5" Offset="1" />
     32     </LinearGradientBrush>
     33     <LinearGradientBrush x:Key="PressedBrush" EndPoint="0.5,1" StartPoint="0.5,0">
     34         <GradientStop Color="#FFC3BCAE" Offset="0" />
     35         <GradientStop Color="#FFFDCE9D" Offset="0.046" />
     36         <GradientStop Color="#FFFFA35B" Offset="0.452" />
     37         <GradientStop Color="#FFFF8A2C" Offset="0.461" />
     38         <GradientStop Color="#FFFF9F30" Offset="0.724" />
     39         <GradientStop Color="#FFFFC472" Offset="1" />
     40     </LinearGradientBrush>
     41     <LinearGradientBrush x:Key="PressedBorderBrush" EndPoint="0.5,1" StartPoint="0.5,0">
     42         <GradientStop Color="#FF8E8165" Offset="0" />
     43         <GradientStop Color="#FFC3BCAE" Offset="1" />
     44     </LinearGradientBrush>
     45     <LinearGradientBrush x:Key="PressedHighlightBrush" EndPoint="0.5,1" StartPoint="0.5,0">
     46         <GradientStop Color="#FFFFFFFF" Offset="0.665" />
     47         <GradientStop Color="#FFC3BCAE" Offset="0" />
     48     </LinearGradientBrush>
     49     <SolidColorBrush x:Key="DisabledBackgroundBrush" Color="#A5FFFFFF"/>
     50     <SolidColorBrush x:Key="DisabledBorderBrush" Color="#66FFFFFF"/>
     51     <SolidColorBrush x:Key="FocusBrush" Color="#FFE99862"/>
     52 
     53     <LinearGradientBrush x:Key="ControlBackgroundBrush" EndPoint="1.204,0.5" StartPoint="0.056,0.5">
     54         <GradientStop Color="#FFFFFFFF" Offset="0" />
     55         <GradientStop Color="#FFD4D7DB" Offset="1" />
     56     </LinearGradientBrush>
     57     <SolidColorBrush x:Key="ControlBorderBrush" Color="#FFB1703C"/>
     58 
     59     <SolidColorBrush x:Key="GlyphBrush" Color="#FF527DB5"/>
     60 
     61 
     62     <SolidColorBrush x:Key="AlternateBackgroundBrush" Color="#FFBFDBFF"/>
     63     <SolidColorBrush x:Key="ControlContentBrush" Color="#FFE0EAF6"/>
     64 
     65 
     66     <Color x:Key="BlackColor">#FF000000</Color>
     67     <Color x:Key="WhiteColor">#FFFFFFFF</Color>
     68 
     69     <SolidColorBrush x:Key="DisabledForegroundBrush" Color="#888" />
     70 
     71     <SolidColorBrush x:Key="WindowBackgroundBrush" Color="#FFF" />
     72 
     73     <!--DataGrid -->
     74 
     75     <!--Style and template for the resize control on the DataGridColumnHeader.-->
     76     <Style x:Key="ColumnHeaderGripperStyle" TargetType="{x:Type Thumb}">
     77         <Setter Property="Width" Value="5" />
     78         <Setter Property="Background" Value="Transparent" />
     79         <Setter Property="Cursor" Value="SizeWE" />
     80         <Setter Property="Template">
     81             <Setter.Value>
     82                 <ControlTemplate TargetType="{x:Type Thumb}">
     83                     <Border Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" />
     84                 </ControlTemplate>
     85             </Setter.Value>
     86         </Setter>
     87     </Style>
     88 
     89     <!--Style and template for the DataGridColumnHeader.-->
     90     <Style TargetType="{x:Type DataGridColumnHeader}">
     91         <Setter Property="Background" Value="{DynamicResource NormalBorderBrush}"/>
     92         <Setter Property="Foreground" Value="{DynamicResource TextBrush}"/>
     93         <Setter Property="VerticalContentAlignment" Value="Center" />
     94         <Setter Property="Height" Value="30"/>
     95         <Setter Property="SeparatorBrush" Value="#FFC9CACA" />
     96         <Setter Property="FontSize" Value="14"/>
     97         <Setter Property="FontWeight" Value="SemiBold"/>
     98         <Setter Property="Padding" Value="4 0 0 0"/>
     99         <Setter Property="Template">
    100             <Setter.Value>
    101                 <ControlTemplate TargetType="{x:Type DataGridColumnHeader}">
    102                     <ControlTemplate.Resources>
    103                         <Storyboard x:Key="HoverOn">
    104                             <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="Hover" Storyboard.TargetProperty="(UIElement.Opacity)">
    105                                 <SplineDoubleKeyFrame KeyTime="00:00:00.2000000" Value="1"/>
    106                             </DoubleAnimationUsingKeyFrames>
    107                         </Storyboard>
    108                         <Storyboard x:Key="HoverOff">
    109                             <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="Hover" Storyboard.TargetProperty="(UIElement.Opacity)">
    110                                 <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0" />
    111                             </DoubleAnimationUsingKeyFrames>
    112                         </Storyboard>
    113                     </ControlTemplate.Resources>
    114                     <Grid Background='Transparent' >
    115                         <Grid.ColumnDefinitions>
    116                             <ColumnDefinition Width='Auto' />
    117                             <ColumnDefinition Width='Auto' />
    118                             <ColumnDefinition Width='*' />
    119                             <ColumnDefinition Width='Auto' />
    120                         </Grid.ColumnDefinitions>
    121                         <Rectangle x:Name="BackgroundRectangle" Grid.ColumnSpan="4" Grid.RowSpan="2"
    122                                    Fill="{StaticResource NormalBrush}" Stretch="Fill" Stroke="{StaticResource NormalBorderBrush}" StrokeThickness="1" />
    123                         <Rectangle x:Name="Hover" Grid.ColumnSpan="4" Grid.RowSpan="2" Stretch="Fill" 
    124                                    Fill="{StaticResource MouseOverBrush}" Opacity="0" />
    125                         <ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
    126                                                   VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
    127                                                   HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
    128                                                   Margin='{TemplateBinding Padding}'
    129                                                   Cursor="{TemplateBinding Cursor}"/>
    130                         <Path HorizontalAlignment="Left" x:Name="SortArrow" VerticalAlignment="Center" 
    131                                       Width="8" Opacity="0" RenderTransformOrigin=".5,.5" Grid.Column="2" Grid.RowSpan="2" Fill="#FF000000" Stretch="Uniform" Data="F1 M -5.215,6.099L 5.215,6.099L 0,0L -5.215,6.099 Z ">
    132                             <Path.RenderTransform>
    133                                 <TransformGroup>
    134                                     <ScaleTransform ScaleX=".9" ScaleY=".9" x:Name="SortIconTransform" />
    135                                 </TransformGroup>
    136                             </Path.RenderTransform>
    137                         </Path>
    138                         <Thumb x:Name="PART_LeftHeaderGripper" Grid.Column="0" HorizontalAlignment="Left" Style="{StaticResource ColumnHeaderGripperStyle}"/>
    139                         <Thumb x:Name="PART_RightHeaderGripper" Grid.Column="3" HorizontalAlignment="Right" Style="{StaticResource ColumnHeaderGripperStyle}"/>
    140                     </Grid>
    141                     <ControlTemplate.Triggers>
    142                         <Trigger Property="SortDirection" Value="Ascending">
    143                             <Setter TargetName="SortArrow" Property="Opacity" Value="1" />
    144                             <Setter TargetName="SortArrow" Property="RenderTransform">
    145                                 <Setter.Value>
    146                                     <RotateTransform Angle="180" />
    147                                 </Setter.Value>
    148                             </Setter>
    149                             <Setter TargetName="BackgroundRectangle" Property="Opacity" Value="1" />
    150                         </Trigger>
    151                         <Trigger Property="SortDirection" Value="Descending">
    152                             <Setter TargetName="SortArrow" Property="Opacity" Value="1" />
    153                             <Setter TargetName="BackgroundRectangle" Property="Opacity" Value="1" />
    154                         </Trigger>
    155                         <Trigger Property="IsMouseOver" Value="true">
    156                             <Trigger.EnterActions>
    157                                 <BeginStoryboard Storyboard="{StaticResource HoverOn}"/>
    158                             </Trigger.EnterActions>
    159                             <Trigger.ExitActions>
    160                                 <BeginStoryboard Storyboard="{StaticResource HoverOff}"/>
    161                             </Trigger.ExitActions>
    162                         </Trigger>
    163                     </ControlTemplate.Triggers>
    164                 </ControlTemplate>
    165             </Setter.Value>
    166         </Setter>        
    167     </Style>
    168 
    169     <!--Style and template for the DataGridColumnHeadersPresenter.-->
    170     <Style TargetType="{x:Type DataGridColumnHeadersPresenter}">
    171         <Setter Property="Template">
    172             <Setter.Value>
    173                 <ControlTemplate TargetType="{x:Type DataGridColumnHeadersPresenter}">
    174                     <Grid>
    175                         <DataGridColumnHeader x:Name="PART_FillerColumnHeader" IsHitTestVisible="False" />
    176                         <ItemsPresenter />
    177                     </Grid>
    178                 </ControlTemplate>
    179             </Setter.Value>
    180         </Setter>
    181     </Style>
    182 
    183     <Style x:Key="{ComponentResourceKey ResourceId=DataGridSelectAllButtonStyle, TypeInTargetAssembly={x:Type DataGrid}}" TargetType="{x:Type Button}">
    184         <Setter Property="Template">
    185             <Setter.Value>
    186                 <ControlTemplate TargetType="{x:Type Button}">
    187                     <Grid>
    188                         <Rectangle x:Name="Border" Fill="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" SnapsToDevicePixels="True"/>
    189                         <Polygon x:Name="Arrow" Fill="Black" HorizontalAlignment="Right" Margin="8,8,3,3" Opacity="0.15" Points="0,10 10,10 10,0" Stretch="Uniform" VerticalAlignment="Bottom"/>
    190                     </Grid>
    191                     <ControlTemplate.Triggers>
    192                         <Trigger Property="IsMouseOver" Value="True">
    193                             <Setter Property="Stroke" TargetName="Border" Value="{DynamicResource {x:Static SystemColors.ControlDarkBrushKey}}"/>
    194                         </Trigger>
    195                         <Trigger Property="IsPressed" Value="True">
    196                             <Setter Property="Fill" TargetName="Border" Value="{DynamicResource {x:Static SystemColors.ControlDarkBrushKey}}"/>
    197                         </Trigger>
    198                         <Trigger Property="IsEnabled" Value="False">
    199                             <Setter Property="Visibility" TargetName="Arrow" Value="Collapsed"/>
    200                         </Trigger>
    201                     </ControlTemplate.Triggers>
    202                 </ControlTemplate>
    203             </Setter.Value>
    204         </Setter>
    205     </Style>
    206 
    207     <Style TargetType="{x:Type DataGrid}">
    208         <Setter Property="Background" Value="{StaticResource ControlContentBrush}"/>
    209         <Setter Property="RowDetailsVisibilityMode" Value="VisibleWhenSelected"/>
    210         <Setter Property="ScrollViewer.CanContentScroll" Value="true"/>
    211         <Setter Property="ScrollViewer.PanningMode" Value="Both"/>
    212         <Setter Property="Stylus.IsFlicksEnabled" Value="False"/>
    213         <Setter Property="Margin" Value="5"/>
    214         <Setter Property="BorderBrush" Value="{StaticResource NormalBorderBrush}" />
    215         <Setter Property="AlternatingRowBackground" Value="{StaticResource AlternateBackgroundBrush}"/>
    216         <Setter Property="HorizontalGridLinesBrush" Value="{StaticResource NormalBorderBrush}"/>
    217         <Setter Property="VerticalGridLinesBrush" Value="{StaticResource NormalBorderBrush}"/>
    218         <Setter Property="Template">
    219             <Setter.Value>
    220                 <ControlTemplate TargetType="{x:Type DataGrid}">
    221                     <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="2" CornerRadius="5" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="True">
    222                         <ScrollViewer x:Name="DG_ScrollViewer" Focusable="false">
    223                             <ScrollViewer.Template>
    224                                 <ControlTemplate TargetType="{x:Type ScrollViewer}">
    225                                     <Grid>
    226                                         <Grid.ColumnDefinitions>
    227                                             <ColumnDefinition Width="Auto"/>
    228                                             <ColumnDefinition Width="*"/>
    229                                             <ColumnDefinition Width="Auto"/>
    230                                         </Grid.ColumnDefinitions>
    231                                         <Grid.RowDefinitions>
    232                                             <RowDefinition Height="Auto"/>
    233                                             <RowDefinition Height="*"/>
    234                                             <RowDefinition Height="Auto"/>
    235                                         </Grid.RowDefinitions>
    236                                         <Button Command="{x:Static DataGrid.SelectAllCommand}" Focusable="false" Style="{DynamicResource {ComponentResourceKey ResourceId=DataGridSelectAllButtonStyle, TypeInTargetAssembly={x:Type DataGrid}}}" Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.All}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" Width="{Binding CellsPanelHorizontalOffset, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
    237                                         <DataGridColumnHeadersPresenter x:Name="PART_ColumnHeadersPresenter" Grid.Column="1" Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.Column}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
    238                                         <ScrollContentPresenter x:Name="PART_ScrollContentPresenter" CanContentScroll="{TemplateBinding CanContentScroll}" Grid.ColumnSpan="2" Grid.Row="1"/>
    239                                         <ScrollBar x:Name="PART_VerticalScrollBar" Grid.Column="2" Maximum="{TemplateBinding ScrollableHeight}" Orientation="Vertical" Grid.Row="1" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportHeight}"/>
    240                                         <Grid Grid.Column="1" Grid.Row="2">
    241                                             <Grid.ColumnDefinitions>
    242                                                 <ColumnDefinition Width="{Binding NonFrozenColumnsViewportHorizontalOffset, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
    243                                                 <ColumnDefinition Width="*"/>
    244                                             </Grid.ColumnDefinitions>
    245                                             <ScrollBar x:Name="PART_HorizontalScrollBar" Grid.Column="1" Maximum="{TemplateBinding ScrollableWidth}" Orientation="Horizontal" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportWidth}"/>
    246                                         </Grid>
    247                                     </Grid>
    248                                 </ControlTemplate>
    249                             </ScrollViewer.Template>
    250                             <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
    251                         </ScrollViewer>
    252                     </Border>
    253                 </ControlTemplate>
    254             </Setter.Value>
    255         </Setter>
    256         <Style.Triggers>
    257             <Trigger Property="IsGrouping" Value="true">
    258                 <Setter Property="ScrollViewer.CanContentScroll" Value="false"/>
    259             </Trigger>
    260         </Style.Triggers>
    261     </Style>
    262 
    263     <Style TargetType="{x:Type DataGridRow}">
    264         <Setter Property="SnapsToDevicePixels" Value="true"/>
    265         <Setter Property="Validation.ErrorTemplate" Value="{x:Null}"/>
    266         <Setter Property="ValidationErrorTemplate">
    267             <Setter.Value>
    268                 <ControlTemplate>
    269                     <Grid>
    270                         <Ellipse Width="12" Height="12" Margin="0 2 0 0"
    271                         Fill="Red" Stroke="Black" VerticalAlignment="Top"
    272                         StrokeThickness="0.5"/>
    273                         <TextBlock FontWeight="Bold" Padding="4,0,0,0"
    274                         VerticalAlignment="Top" Foreground="White" Text="!"
    275                         ToolTip="{Binding (Validation.Errors)[0].ErrorContent, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGridRow}}}"/>
    276                     </Grid>
    277                 </ControlTemplate>
    278             </Setter.Value>
    279         </Setter>
    280 
    281         <Setter Property="Template">
    282             <Setter.Value>
    283                 <ControlTemplate TargetType="{x:Type DataGridRow}">
    284                     <ControlTemplate.Resources>
    285                         <Storyboard x:Key="SelectedOn">
    286                             <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="select_gradient" Storyboard.TargetProperty="(UIElement.Opacity)">
    287                                 <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="1" />
    288                             </DoubleAnimationUsingKeyFrames>
    289                         </Storyboard>
    290                         <Storyboard x:Key="SelectedOff">
    291                             <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="select_gradient" Storyboard.TargetProperty="(UIElement.Opacity)">
    292                                 <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0" />
    293                             </DoubleAnimationUsingKeyFrames>
    294                         </Storyboard>
    295                         <Storyboard x:Key="HoverOn">
    296                             <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="hover_gradient" Storyboard.TargetProperty="(UIElement.Opacity)">
    297                                 <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="0.85" />
    298                             </DoubleAnimationUsingKeyFrames>
    299                             <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="highlight" Storyboard.TargetProperty="(UIElement.Opacity)">
    300                                 <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="0.65" />
    301                             </DoubleAnimationUsingKeyFrames>
    302                         </Storyboard>
    303                         <Storyboard x:Key="HoverOff">
    304                             <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="hover_gradient" Storyboard.TargetProperty="(UIElement.Opacity)">
    305                                 <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0" />
    306                             </DoubleAnimationUsingKeyFrames>
    307                             <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="highlight" Storyboard.TargetProperty="(UIElement.Opacity)">
    308                                 <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0" />
    309                             </DoubleAnimationUsingKeyFrames>
    310                         </Storyboard>
    311                     </ControlTemplate.Resources>
    312                     <Border x:Name="DGR_Border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
    313                         <SelectiveScrollingGrid>
    314                             <SelectiveScrollingGrid.ColumnDefinitions>
    315                                 <ColumnDefinition Width="Auto"/>
    316                                 <ColumnDefinition Width="*"/>
    317                             </SelectiveScrollingGrid.ColumnDefinitions>
    318                             <SelectiveScrollingGrid.RowDefinitions>
    319                                 <RowDefinition Height="*"/>
    320                                 <RowDefinition Height="Auto"/>
    321                             </SelectiveScrollingGrid.RowDefinitions>
    322 
    323                             <Rectangle x:Name="hover_gradient" Stroke="{DynamicResource FocusBrush}" StrokeThickness="1" RadiusX="1" RadiusY="1" Opacity="0" IsHitTestVisible="False" Grid.Column="1" Fill="{DynamicResource MouseOverBrush}"/>
    324                             <Rectangle x:Name="highlight" Margin="1" StrokeThickness="1" RadiusX="0.5" RadiusY="0.5" Opacity="0" IsHitTestVisible="False" Grid.Column="1" Stroke="{DynamicResource MouseOverHighlightBrush}" Fill="{DynamicResource MouseOverHighlightBrush}"/>
    325                             <Rectangle x:Name="select_gradient" Grid.Row="0" Grid.ColumnSpan="2" StrokeThickness="1" RadiusX="1" RadiusY="1" Opacity="0" IsHitTestVisible="False" Fill="{DynamicResource PressedBrush}" Stroke="{DynamicResource PressedBorderBrush}"/>
    326 
    327                             <DataGridCellsPresenter Grid.Column="1" ItemsPanel="{TemplateBinding ItemsPanel}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
    328                             <DataGridDetailsPresenter Grid.Column="1" Grid.Row="1" SelectiveScrollingGrid.SelectiveScrollingOrientation="{Binding AreRowDetailsFrozen, ConverterParameter={x:Static SelectiveScrollingOrientation.Vertical}, Converter={x:Static DataGrid.RowDetailsScrollingConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" Visibility="{TemplateBinding DetailsVisibility}"/>
    329                             <DataGridRowHeader Grid.RowSpan="2" SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical" Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.Row}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
    330 
    331                         </SelectiveScrollingGrid>
    332                     </Border>
    333                     <ControlTemplate.Triggers>
    334                         <Trigger Property="IsMouseOver" Value="True" SourceName="DGR_Border">
    335                             <Trigger.ExitActions>
    336                                 <BeginStoryboard Storyboard="{StaticResource HoverOff}" x:Name="HoverOff_BeginStoryboard" />
    337                             </Trigger.ExitActions>
    338                             <Trigger.EnterActions>
    339                                 <BeginStoryboard Storyboard="{StaticResource HoverOn}" x:Name="HoverOn_BeginStoryboard" />
    340                             </Trigger.EnterActions>
    341                         </Trigger>
    342                         <Trigger Property="IsSelected" Value="true">
    343                             <Trigger.ExitActions>
    344                                 <BeginStoryboard x:Name="SelectedOff_BeginStoryboard" Storyboard="{StaticResource SelectedOff}" />
    345                             </Trigger.ExitActions>
    346                             <Trigger.EnterActions>
    347                                 <BeginStoryboard Storyboard="{StaticResource SelectedOn}" />
    348                             </Trigger.EnterActions>
    349                         </Trigger>
    350                     </ControlTemplate.Triggers>
    351                 </ControlTemplate>
    352             </Setter.Value>
    353         </Setter>
    354     </Style>
    355 
    356     <Style TargetType="{x:Type DataGridCell}">
    357         <Setter Property="Template">
    358             <Setter.Value>
    359                 <ControlTemplate TargetType="{x:Type DataGridCell}">
    360                     <ControlTemplate.Resources>
    361                         <Storyboard x:Key="SelectedOn">
    362                             <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="select_gradient" Storyboard.TargetProperty="(UIElement.Opacity)">
    363                                 <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="1" />
    364                             </DoubleAnimationUsingKeyFrames>
    365                         </Storyboard>
    366                         <Storyboard x:Key="SelectedOff">
    367                             <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="select_gradient" Storyboard.TargetProperty="(UIElement.Opacity)">
    368                                 <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0" />
    369                             </DoubleAnimationUsingKeyFrames>
    370                         </Storyboard>
    371                     </ControlTemplate.Resources>
    372                     <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
    373                         <Grid>
    374                             <Rectangle x:Name="select_gradient" Margin="-2 -1 -2 -1"  Grid.Column="1" StrokeThickness="1" RadiusX="1" RadiusY="1" Opacity="0" IsHitTestVisible="False" Fill="{DynamicResource PressedBrush}" Stroke="{DynamicResource PressedBorderBrush}"/>
    375                             <ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
    376                         </Grid>
    377                     </Border>
    378                     <ControlTemplate.Triggers>
    379                         <Trigger Property="IsSelected" Value="true">
    380                             <Trigger.ExitActions>
    381                                 <BeginStoryboard x:Name="SelectedOff_BeginStoryboard" Storyboard="{StaticResource SelectedOff}" />
    382                             </Trigger.ExitActions>
    383                             <Trigger.EnterActions>
    384                                 <BeginStoryboard Storyboard="{StaticResource SelectedOn}" />
    385                             </Trigger.EnterActions>
    386                         </Trigger>
    387                     </ControlTemplate.Triggers>
    388                 </ControlTemplate>
    389 
    390             </Setter.Value>
    391         </Setter>
    392     </Style>
    393     <BooleanToVisibilityConverter x:Key="bool2VisibilityConverter"/>
    394     <Style x:Key="RowHeaderGripperStyle" TargetType="{x:Type Thumb}">
    395         <Setter Property="Height" Value="8"/>
    396         <Setter Property="Background" Value="Transparent"/>
    397         <Setter Property="Cursor" Value="SizeNS"/>
    398         <Setter Property="Template">
    399             <Setter.Value>
    400                 <ControlTemplate TargetType="{x:Type Thumb}">
    401                     <Border Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}"/>
    402                 </ControlTemplate>
    403             </Setter.Value>
    404         </Setter>
    405     </Style>
    406 
    407     <Style TargetType="{x:Type DataGridRowHeader}">
    408         <Setter Property="Width" Value="20"/>
    409         <Setter Property="Template">
    410             <Setter.Value>
    411                 <ControlTemplate TargetType="{x:Type DataGridRowHeader}">
    412                     <Grid>
    413                         <Microsoft_Windows_Themes:DataGridHeaderBorder BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" IsPressed="{TemplateBinding IsPressed}" IsHovered="{TemplateBinding IsMouseOver}" IsSelected="{TemplateBinding IsRowSelected}" Orientation="Horizontal" Padding="{TemplateBinding Padding}" SeparatorBrush="{TemplateBinding SeparatorBrush}" SeparatorVisibility="{TemplateBinding SeparatorVisibility}">
    414                             <StackPanel Orientation="Horizontal">
    415                                 <ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="Center"/>
    416                                 <Control SnapsToDevicePixels="false" Template="{Binding ValidationErrorTemplate, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}}}" Visibility="{Binding (Validation.HasError), Converter={StaticResource bool2VisibilityConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}}}"/>
    417                             </StackPanel>
    418                         </Microsoft_Windows_Themes:DataGridHeaderBorder>
    419                         <Thumb x:Name="PART_TopHeaderGripper" Style="{StaticResource RowHeaderGripperStyle}" VerticalAlignment="Top"/>
    420                         <Thumb x:Name="PART_BottomHeaderGripper" Style="{StaticResource RowHeaderGripperStyle}" VerticalAlignment="Bottom"/>
    421                     </Grid>
    422                 </ControlTemplate>
    423             </Setter.Value>
    424         </Setter>
    425     </Style>
  • 相关阅读:
    渣渣菜鸡的蚂蚁金服面试经历(一)
    20 个案例教你在 Java 8 中如何处理日期和时间?
    Spring Boot 2.0系列文章(七):SpringApplication 深入探索
    分布式锁看这篇就够了
    Spring Boot 2.0系列文章(五):Spring Boot 2.0 项目源码结构预览
    20135337朱荟潼——实验三
    20135337朱荟潼Java实验报告二
    5337朱荟潼Java实验报告一
    Linux内核设计笔记12——内存管理
    Linux内核设计笔记11——定时器
  • 原文地址:https://www.cnblogs.com/xuxiaorong/p/3271579.html
Copyright © 2011-2022 走看看