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">#FF000000Color>
67 <Color x:Key="WhiteColor">#FFFFFFFFColor>
68
69 <SolidColorBrush x:Key="DisabledForegroundBrush" Color="#888" />
70
71 <SolidColorBrush x:Key="WindowBackgroundBrush" Color="#FFF" />
72
73
74
75
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
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
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>