1+ <ResourceDictionary
2+ xmlns =" http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3+ xmlns : x =" http://schemas.microsoft.com/winfx/2006/xaml"
4+ xmlns : system =" clr-namespace:System;assembly=System.Runtime" >
5+
6+ <system : Double x : Key =" GridViewColumnHeaderMinHeight" >32</system : Double >
7+
8+
9+ <Style x : Key =" DefaultGridViewColumnHeaderGripper" TargetType =" Thumb" >
10+ <Setter Property =" Canvas.Right" Value =" -4" />
11+ <Setter Property =" Width" Value =" 8" />
12+ <Setter Property =" Height" Value =" {Binding Path=ActualHeight, RelativeSource={RelativeSource TemplatedParent}}" />
13+ <Setter Property =" Border.CornerRadius" Value =" {DynamicResource ControlCornerRadius}" />
14+ <Setter Property =" Template" >
15+ <Setter .Value>
16+ <ControlTemplate TargetType =" Thumb" >
17+ <Border x : Name =" RootGrid"
18+ Background =" Transparent"
19+ Padding =" {TemplateBinding Padding}" >
20+ <Rectangle x : Name =" PART_Thumb"
21+ Width =" 2" Height =" 16"
22+ HorizontalAlignment =" Center"
23+ Fill =" {DynamicResource GridViewColumnHeaderGripperThumbFill}"
24+ RadiusX =" 1"
25+ RadiusY =" 1" />
26+ </Border >
27+ </ControlTemplate >
28+ </Setter .Value>
29+ </Setter >
30+ </Style >
31+
32+ <!-- GridView ColumnHeader Style-->
33+ <Style x : Key =" DefaultGridViewColumnHeaderStyle" TargetType =" {x:Type GridViewColumnHeader}" >
34+ <Setter Property =" Background" Value =" {DynamicResource GridViewColumnHeaderBackground}" />
35+ <Setter Property =" BorderBrush" Value =" {DynamicResource GridViewColumnHeaderBorderBrush}" />
36+ <Setter Property =" Foreground" Value =" {DynamicResource GridViewColumnHeaderForeground}" />
37+ <Setter Property =" HorizontalContentAlignment" Value =" Stretch" />
38+ <Setter Property =" VerticalContentAlignment" Value =" Center" />
39+ <Setter Property =" BorderThickness" Value =" 0,2,0,2" />
40+ <Setter Property =" Padding" Value =" 12,0" />
41+ <Setter Property =" OverridesDefaultStyle" Value =" True" />
42+ <Setter Property =" Template" >
43+ <Setter .Value>
44+ <ControlTemplate TargetType =" GridViewColumnHeader" >
45+ <Grid >
46+ <Border
47+ x : Name =" HeaderBorder"
48+ Background =" {TemplateBinding Background}"
49+ BorderThickness =" {TemplateBinding BorderThickness}"
50+ BorderBrush =" {TemplateBinding BorderBrush}"
51+ CornerRadius =" 4 4 0 0" >
52+ <ContentPresenter
53+ Margin =" {TemplateBinding Padding}"
54+ HorizontalAlignment =" {TemplateBinding HorizontalContentAlignment}"
55+ VerticalAlignment =" {TemplateBinding VerticalContentAlignment}"
56+ RecognizesAccessKey =" True"
57+ SnapsToDevicePixels =" {TemplateBinding SnapsToDevicePixels}" />
58+ </Border >
59+ <Canvas >
60+ <Thumb x : Name =" PART_HeaderGripper"
61+ Style =" {StaticResource DefaultGridViewColumnHeaderGripper}" />
62+ </Canvas >
63+ </Grid >
64+ <ControlTemplate .Triggers>
65+ <Trigger Property =" IsMouseOver" Value =" true" >
66+ <Setter TargetName =" HeaderBorder" Property =" Background" Value =" {DynamicResource GridViewColumnHeaderBackgroundPointerOver}" />
67+ <Setter TargetName =" HeaderBorder" Property =" BorderBrush" Value =" {DynamicResource GridViewColumnHeaderBorderBrushPointerOver}" />
68+ </Trigger >
69+ <Trigger Property =" IsPressed" Value =" true" >
70+ <Setter TargetName =" HeaderBorder" Property =" Background" Value =" {DynamicResource GridViewColumnHeaderBackgroundPressed}" />
71+ <Setter TargetName =" HeaderBorder" Property =" BorderBrush" Value =" {DynamicResource GridViewColumnHeaderBorderBrushPressed}" />
72+ </Trigger >
73+ <Trigger Property =" Height" Value =" Auto" >
74+ <Setter Property =" MinHeight" Value =" {DynamicResource GridViewColumnHeaderMinHeight}" />
75+ </Trigger >
76+ <Trigger Property =" IsEnabled" Value =" False" >
77+ <Setter TargetName =" HeaderBorder" Property =" Background" Value =" {DynamicResource GridViewColumnHeaderBackgroundDisabled}" />
78+ <Setter TargetName =" HeaderBorder" Property =" BorderBrush" Value =" {DynamicResource GridViewColumnHeaderBorderBrushDisabled}" />
79+ <Setter Property =" Foreground" Value =" {DynamicResource GridViewColumnHeaderForegroundDisabled}" />
80+ </Trigger >
81+ </ControlTemplate .Triggers>
82+ </ControlTemplate >
83+ </Setter .Value>
84+ </Setter >
85+ <Style .Triggers>
86+ <Trigger Property =" Role" Value =" Padding" >
87+ <Setter Property =" BorderThickness" Value =" 0,2,0,2" />
88+ <Setter Property =" Template" >
89+ <Setter .Value>
90+ <!-- The same as normal header, just no gripper. -->
91+ <ControlTemplate TargetType =" GridViewColumnHeader" >
92+ <Border
93+ Background =" {TemplateBinding Background}"
94+ BorderThickness =" {TemplateBinding BorderThickness}"
95+ BorderBrush =" {TemplateBinding BorderBrush}" />
96+ <ControlTemplate .Triggers>
97+ <Trigger Property =" Height" Value =" Auto" >
98+ <Setter Property =" MinHeight" Value =" {DynamicResource GridViewColumnHeaderMinHeight}" />
99+ </Trigger >
100+ </ControlTemplate .Triggers>
101+ </ControlTemplate >
102+ </Setter .Value>
103+ </Setter >
104+ </Trigger >
105+ <Trigger Property =" Role" Value =" Floating" >
106+ <Setter Property =" Opacity" Value =" 0.6" />
107+ <Setter Property =" Template" >
108+ <Setter .Value>
109+ <ControlTemplate TargetType =" GridViewColumnHeader" >
110+ <Canvas Name =" PART_FloatingHeaderCanvas" />
111+ </ControlTemplate >
112+ </Setter .Value>
113+ </Setter >
114+ </Trigger >
115+ </Style .Triggers>
116+ </Style >
117+
118+ <Style x : Key =" {x:Type GridViewColumnHeader}" TargetType =" GridViewColumnHeader" />
119+
120+ <!-- GridView ScrollViewer Style-->
121+ <Style x : Key =" {x:Static GridView.GridViewScrollViewerStyleKey}" TargetType =" ScrollViewer" >
122+ <Setter Property =" Focusable" Value =" False" />
123+ <Setter Property =" Template" >
124+ <Setter .Value>
125+ <ControlTemplate TargetType =" ScrollViewer" >
126+ <Grid Background =" {TemplateBinding Background}"
127+ SnapsToDevicePixels =" true" >
128+ <Grid .ColumnDefinitions>
129+ <ColumnDefinition Width =" *" />
130+ <ColumnDefinition Width =" Auto" />
131+ </Grid .ColumnDefinitions>
132+ <Grid .RowDefinitions>
133+ <RowDefinition Height =" *" />
134+ <RowDefinition Height =" Auto" />
135+ </Grid .RowDefinitions>
136+ <DockPanel
137+ Grid.ColumnSpan=" 2"
138+ Grid.RowSpan=" 2"
139+ Margin =" {TemplateBinding Padding}" >
140+ <ScrollViewer
141+ DockPanel.Dock=" Top"
142+ HorizontalScrollBarVisibility =" Hidden"
143+ VerticalScrollBarVisibility =" Hidden"
144+ Focusable =" False" >
145+ <GridViewHeaderRowPresenter
146+ Columns =" {Binding Path=TemplatedParent.View.Columns, RelativeSource={RelativeSource TemplatedParent}}"
147+ ColumnHeaderContainerStyle =" {Binding Path=TemplatedParent.View.ColumnHeaderContainerStyle, RelativeSource={RelativeSource TemplatedParent}, FallbackValue={StaticResource DefaultGridViewColumnHeaderStyle}}"
148+ ColumnHeaderTemplate =" {Binding Path=TemplatedParent.View.ColumnHeaderTemplate, RelativeSource={RelativeSource TemplatedParent}}"
149+ ColumnHeaderTemplateSelector =" {Binding Path=TemplatedParent.View.ColumnHeaderTemplateSelector, RelativeSource={RelativeSource TemplatedParent}}"
150+ ColumnHeaderStringFormat =" {Binding Path=TemplatedParent.View.ColumnHeaderStringFormat, RelativeSource={RelativeSource TemplatedParent}}"
151+ AllowsColumnReorder =" {Binding Path=TemplatedParent.View.AllowsColumnReorder, RelativeSource={RelativeSource TemplatedParent}}"
152+ ColumnHeaderContextMenu =" {Binding Path=TemplatedParent.View.ColumnHeaderContextMenu, RelativeSource={RelativeSource TemplatedParent}}"
153+ ColumnHeaderToolTip =" {Binding Path=TemplatedParent.View.ColumnHeaderToolTip, RelativeSource={RelativeSource TemplatedParent}}"
154+ SnapsToDevicePixels =" {TemplateBinding SnapsToDevicePixels}" />
155+ </ScrollViewer >
156+ <ScrollContentPresenter Name =" PART_ScrollContentPresenter"
157+ KeyboardNavigation.DirectionalNavigation=" Local"
158+ Content =" {TemplateBinding Content}"
159+ ContentTemplate =" {TemplateBinding ContentTemplate}"
160+ CanContentScroll =" {TemplateBinding CanContentScroll}"
161+ SnapsToDevicePixels =" {TemplateBinding SnapsToDevicePixels}" />
162+ </DockPanel >
163+ <ScrollBar
164+ Name =" PART_HorizontalScrollBar"
165+ Orientation =" Horizontal"
166+ Grid.Row=" 1"
167+ Minimum =" 0.0"
168+ Maximum =" {TemplateBinding ScrollableWidth}"
169+ ViewportSize =" {TemplateBinding ViewportWidth}"
170+ Value =" {TemplateBinding HorizontalOffset}"
171+ Visibility =" {TemplateBinding ComputedHorizontalScrollBarVisibility}"
172+ Cursor =" Arrow" />
173+ <ScrollBar Name =" PART_VerticalScrollBar"
174+ Orientation =" Vertical"
175+ Grid.Column=" 1"
176+ Minimum =" 0.0"
177+ Maximum =" {TemplateBinding ScrollableHeight}"
178+ ViewportSize =" {TemplateBinding ViewportHeight}"
179+ Value =" {TemplateBinding VerticalOffset}"
180+ Visibility =" {TemplateBinding ComputedVerticalScrollBarVisibility}"
181+ Cursor =" Arrow" />
182+ <DockPanel Grid.Column=" 1"
183+ Grid.Row=" 1"
184+ Background =" {Binding Path=Background, ElementName=PART_VerticalScrollBar}"
185+ LastChildFill =" false" >
186+ <Rectangle DockPanel.Dock=" Left"
187+ Width =" 1"
188+ Fill =" Transparent"
189+ Visibility =" {TemplateBinding ComputedVerticalScrollBarVisibility}" />
190+ <Rectangle DockPanel.Dock=" Top"
191+ Height =" 1"
192+ Fill =" Transparent"
193+ Visibility =" {TemplateBinding ComputedHorizontalScrollBarVisibility}" />
194+ </DockPanel >
195+ </Grid >
196+ </ControlTemplate >
197+ </Setter .Value>
198+ </Setter >
199+ </Style >
200+
201+ <!-- Default GridView ControlTemplate -->
202+ <ControlTemplate x : Key =" GridViewTemplate" TargetType =" {x:Type ListView}" >
203+ <Border x : Name =" RootBorder"
204+ Background =" {TemplateBinding Background}"
205+ BorderBrush =" {TemplateBinding BorderBrush}"
206+ BorderThickness =" {TemplateBinding BorderThickness}"
207+ SnapsToDevicePixels =" True" >
208+ <Border .Resources>
209+ <Style TargetType =" GridViewColumnHeader" BasedOn =" {StaticResource DefaultGridViewColumnHeaderStyle}" />
210+ </Border .Resources>
211+ <ScrollViewer Style =" {DynamicResource {x:Static GridView.GridViewScrollViewerStyleKey}}"
212+ Padding =" {TemplateBinding Padding}" >
213+ <ItemsPresenter SnapsToDevicePixels =" {TemplateBinding SnapsToDevicePixels}" />
214+ </ScrollViewer >
215+ </Border >
216+ <!-- TODO : Is enabled false trigger-->
217+ </ControlTemplate >
218+
219+ </ResourceDictionary >
0 commit comments