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>