1+ <!--  Based on https://github.com/AvaloniaUI/Avalonia.Controls.TreeDataGrid/blob/master/src/Avalonia.Controls.TreeDataGrid/Themes/Generic.axaml 
2+      and https://github.com/AvaloniaUI/Avalonia.Controls.TreeDataGrid/blob/master/src/Avalonia.Controls.TreeDataGrid/Themes/Fluent.axaml  -->  
3+ 
4+ <ResourceDictionary  xmlns =" https://github.com/avaloniaui" 
5+                     xmlns : x =" http://schemas.microsoft.com/winfx/2006/xaml" 
6+                     xmlns : conv =" using:Avalonia.Controls.Converters" 
7+ 
8+         <ResourceDictionary .ThemeDictionaries>
9+         <ResourceDictionary  x : Key =" Default" 
10+           <SolidColorBrush  x : Key =" TreeDataGridGridLinesBrush" Color =" {StaticResource SystemListLowColor}" 
11+           <SolidColorBrush  x : Key =" TreeDataGridHeaderBackgroundPointerOverBrush" Color =" {StaticResource SystemBaseHighColor}" Opacity =" 0.1" 
12+           <SolidColorBrush  x : Key =" TreeDataGridHeaderBackgroundPressedBrush" Color =" {StaticResource SystemBaseMediumLowColor}" 
13+           <SolidColorBrush  x : Key =" TreeDataGridHeaderBorderBrushPointerOverBrush" Color =" Transparent" 
14+           <SolidColorBrush  x : Key =" TreeDataGridHeaderBorderBrushPressedBrush" Color =" Transparent" 
15+           <SolidColorBrush  x : Key =" TreeDataGridHeaderForegroundPointerOverBrush" Color =" {StaticResource SystemBaseHighColor}" 
16+           <SolidColorBrush  x : Key =" TreeDataGridHeaderForegroundPressedBrush" Color =" {StaticResource SystemBaseHighColor}" 
17+           <SolidColorBrush  x : Key =" TreeDataGridSelectedCellBackgroundBrush" Color =" {StaticResource SystemAccentColor}" Opacity =" 0.4" 
18+         </ResourceDictionary >
19+         <ResourceDictionary  x : Key =" Dark" 
20+           <SolidColorBrush  x : Key =" TreeDataGridGridLinesBrush" Color =" {StaticResource SystemListLowColor}" 
21+           <SolidColorBrush  x : Key =" TreeDataGridHeaderBackgroundPointerOverBrush" Color =" {StaticResource SystemBaseHighColor}" Opacity =" 0.1" 
22+           <SolidColorBrush  x : Key =" TreeDataGridHeaderBackgroundPressedBrush" Color =" {StaticResource SystemBaseMediumLowColor}" 
23+           <SolidColorBrush  x : Key =" TreeDataGridHeaderBorderBrushPointerOverBrush" Color =" Transparent" 
24+           <SolidColorBrush  x : Key =" TreeDataGridHeaderBorderBrushPressedBrush" Color =" Transparent" 
25+           <SolidColorBrush  x : Key =" TreeDataGridHeaderForegroundPointerOverBrush" Color =" {StaticResource SystemBaseHighColor}" 
26+           <SolidColorBrush  x : Key =" TreeDataGridHeaderForegroundPressedBrush" Color =" {StaticResource SystemBaseHighColor}" 
27+           <SolidColorBrush  x : Key =" TreeDataGridSelectedCellBackgroundBrush" Color =" {StaticResource SystemAccentColor}" Opacity =" 0.4" 
28+         </ResourceDictionary >
29+       </ResourceDictionary .ThemeDictionaries>
30+ 
31+       <StreamGeometry  x : Key =" TreeDataGridSortIconDescendingPath" StreamGeometry >
32+       <StreamGeometry  x : Key =" TreeDataGridSortIconAscendingPath" StreamGeometry >
33+       <StreamGeometry  x : Key =" TreeDataGridItemCollapsedChevronPathData" StreamGeometry >
34+       <StreamGeometry  x : Key =" TreeDataGridItemExpandedChevronPathData" StreamGeometry >
35+ 
36+       <ControlTheme  x : Key =" {x:Type TreeDataGrid}" TargetType =" TreeDataGrid" 
37+         <Setter  Property =" Template" 
38+           <ControlTemplate >
39+             <Border  x : Name =" RootBorder" 
40+                     Background =" {TemplateBinding Background}" 
41+                     BorderBrush =" {TemplateBinding BorderBrush}" 
42+                     BorderThickness =" {TemplateBinding BorderThickness}" 
43+                     CornerRadius =" {TemplateBinding CornerRadius}" 
44+               <DockPanel >
45+                 <ScrollViewer  Name =" PART_HeaderScrollViewer" 
46+                               DockPanel.Dock=" Top" 
47+                               IsVisible =" {TemplateBinding ShowColumnHeaders}" 
48+                               HorizontalScrollBarVisibility =" Hidden" 
49+                               VerticalScrollBarVisibility =" Disabled" 
50+                               BringIntoViewOnFocusChange =" {TemplateBinding (ScrollViewer.BringIntoViewOnFocusChange)}" 
51+                   <Border  x : Name =" ColumnHeadersPresenterBorder" 
52+                     <TreeDataGridColumnHeadersPresenter  Name =" PART_ColumnHeadersPresenter" 
53+                                                         ElementFactory =" {TemplateBinding ElementFactory}" 
54+                                                         Items =" {TemplateBinding Columns}" 
55+                   </Border >
56+                 </ScrollViewer >
57+                 <ScrollViewer  Name =" PART_ScrollViewer" 
58+                               HorizontalScrollBarVisibility =" Auto" 
59+                               BringIntoViewOnFocusChange =" {TemplateBinding (ScrollViewer.BringIntoViewOnFocusChange)}" 
60+                   <TreeDataGridRowsPresenter  Name =" PART_RowsPresenter" 
61+                                              Columns =" {TemplateBinding Columns}" 
62+                                              ElementFactory =" {TemplateBinding ElementFactory}" 
63+                                              Items =" {TemplateBinding Rows}" 
64+                 </ScrollViewer >
65+               </DockPanel >
66+             </Border >
67+           </ControlTemplate >
68+         </Setter >
69+ 
70+         <Style  Selector =" ^/template/ Border#ColumnHeadersPresenterBorder" 
71+           <Setter  Property =" BorderThickness" Value =" 0 0 0 1" 
72+           <Setter  Property =" BorderBrush" Value =" {DynamicResource TreeDataGridGridLinesBrush}" 
73+         </Style >
74+ 
75+       </ControlTheme >
76+ 
77+       <ControlTheme  x : Key =" {x:Type TreeDataGridColumnHeader}" TargetType =" TreeDataGridColumnHeader" 
78+         <Setter  Property =" Background" Value =" Transparent" 
79+         <Setter  Property =" MinHeight" Value =" 25" 
80+         <Setter  Property =" Padding" Value =" 4 2" 
81+         <Setter  Property =" VerticalContentAlignment" Value =" Center" 
82+         <Setter  Property =" Template" 
83+           <ControlTemplate >
84+             <Border  Name =" DataGridBorder" 
85+                     Background =" {TemplateBinding Background}" 
86+                     BorderBrush =" {TemplateBinding BorderBrush}" 
87+                     BorderThickness =" {TemplateBinding BorderThickness}" 
88+                     CornerRadius =" {TemplateBinding CornerRadius}" 
89+               <DockPanel  VerticalAlignment =" Stretch" 
90+                 <Panel  DockPanel.Dock=" Right" 
91+                        TabIndex =" 2" 
92+                   <Rectangle  Fill =" {DynamicResource TreeDataGridGridLinesBrush}" 
93+                              HorizontalAlignment =" Right" 
94+                              Width =" 1" 
95+                   <Thumb  Name =" PART_Resizer" 
96+                          DockPanel.Dock=" Right" 
97+                          Background =" Transparent" 
98+                          Cursor =" SizeWestEast" 
99+                          IsVisible =" {TemplateBinding CanUserResize}" 
100+                          Width =" 5" 
101+                     <Thumb .Template>
102+                       <ControlTemplate >
103+                         <Border  Background =" {TemplateBinding Background}" 
104+                                 VerticalAlignment =" Stretch" 
105+                       </ControlTemplate >
106+                     </Thumb .Template>
107+                   </Thumb >
108+                 </Panel >
109+                 <Path  Name =" SortIcon" 
110+                       DockPanel.Dock=" Right" 
111+                       Fill =" {TemplateBinding Foreground}" 
112+                       HorizontalAlignment =" Center" 
113+                       VerticalAlignment =" Center" 
114+                       Stretch =" Uniform" 
115+                       Height =" 12" 
116+                       TabIndex =" 1" 
117+                 <ContentPresenter  Name =" PART_ContentPresenter" 
118+                                   Content =" {TemplateBinding Header}" 
119+                                   ContentTemplate =" {TemplateBinding ContentTemplate}" 
120+                                   Padding =" {TemplateBinding Padding}" 
121+                                   HorizontalContentAlignment =" {TemplateBinding HorizontalContentAlignment}" 
122+                                   VerticalContentAlignment =" {TemplateBinding VerticalContentAlignment}" 
123+                                   TabIndex =" 0" 
124+                   <ContentPresenter .DataTemplates>
125+                     <DataTemplate  DataType =" x:String" 
126+                       <TextBlock  Text =" {Binding}" TextTrimming =" CharacterEllipsis" 
127+                     </DataTemplate >
128+                   </ContentPresenter .DataTemplates>
129+                 </ContentPresenter >
130+               </DockPanel >
131+             </Border >
132+           </ControlTemplate >
133+         </Setter >
134+ 
135+         <Style  Selector =" ^:pointerover /template/ Border#DataGridBorder" 
136+           <Setter  Property =" Background" Value =" {DynamicResource TreeDataGridHeaderBackgroundPointerOverBrush}" 
137+           <Setter  Property =" BorderBrush" Value =" {DynamicResource TreeDataGridHeaderBorderBrushPointerOverBrush}" 
138+           <Setter  Property =" TextBlock.Foreground" 
139+                   Value =" {DynamicResource TreeDataGridHeaderForegroundPointerOverBrush}" 
140+         </Style >
141+ 
142+         <Style  Selector =" ^:pressed /template/ Border#DataGridBorder" 
143+           <Setter  Property =" Background" Value =" {DynamicResource TreeDataGridHeaderBackgroundPressedBrush}" 
144+           <Setter  Property =" BorderBrush" Value =" {DynamicResource TreeDataGridHeaderBorderBrushPressedBrush}" 
145+           <Setter  Property =" TextBlock.Foreground" Value =" {DynamicResource TreeDataGridHeaderForegroundPressedBrush}" 
146+         </Style >
147+ 
148+         <Style  Selector =" ^[SortDirection=Ascending] /template/ Path#SortIcon" 
149+           <Setter  Property =" IsVisible" Value =" True" 
150+           <Setter  Property =" Data" Value =" {DynamicResource TreeDataGridSortIconAscendingPath}" 
151+         </Style >
152+ 
153+         <Style  Selector =" ^[SortDirection=Descending] /template/ Path#SortIcon" 
154+           <Setter  Property =" IsVisible" Value =" True" 
155+           <Setter  Property =" Data" Value =" {DynamicResource TreeDataGridSortIconDescendingPath}" 
156+         </Style >
157+ 
158+       </ControlTheme >
159+ 
160+       <ControlTheme  x : Key =" {x:Type TreeDataGridRow}" TargetType =" TreeDataGridRow" 
161+         <Setter  Property =" Template" 
162+           <ControlTemplate >
163+             <Border  x : Name =" RowBorder" 
164+                     Background =" {TemplateBinding Background}" 
165+                     BorderBrush =" {TemplateBinding BorderBrush}" 
166+                     BorderThickness =" {TemplateBinding BorderThickness}" 
167+                     CornerRadius =" {TemplateBinding CornerRadius}" 
168+               <TreeDataGridCellsPresenter  Name =" PART_CellsPresenter" 
169+                                           ElementFactory =" {TemplateBinding ElementFactory}" 
170+                                           Items =" {TemplateBinding Columns}" 
171+                                           Rows =" {TemplateBinding Rows}" 
172+             </Border >
173+           </ControlTemplate >
174+         </Setter >
175+ 
176+         <Style  Selector =" ^:selected /template/ TreeDataGridCellsPresenter#PART_CellsPresenter" 
177+           <Setter  Property =" Background" Value =" {DynamicResource TreeDataGridSelectedCellBackgroundBrush}" 
178+         </Style >
179+ 
180+       </ControlTheme >
181+ 
182+       <ControlTheme  x : Key =" {x:Type TreeDataGridCheckBoxCell}" TargetType =" TreeDataGridCheckBoxCell" 
183+         <Setter  Property =" Padding" Value =" 4 2" 
184+         <Setter  Property =" Template" 
185+           <ControlTemplate >
186+             <Border  x : Name =" CellBorder" 
187+                     Background =" {TemplateBinding Background}" 
188+                     BorderBrush =" {TemplateBinding BorderBrush}" 
189+                     BorderThickness =" {TemplateBinding BorderThickness}" 
190+                     CornerRadius =" {TemplateBinding CornerRadius}" 
191+                     Padding =" {TemplateBinding Padding}" 
192+               <CheckBox  IsChecked =" {TemplateBinding Value, Mode=TwoWay}" 
193+                         IsEnabled =" {Binding !IsReadOnly, RelativeSource={RelativeSource TemplatedParent}}" 
194+                         IsThreeState =" {TemplateBinding IsThreeState}" 
195+             </Border >
196+           </ControlTemplate >
197+         </Setter >
198+       </ControlTheme >
199+ 
200+       <ControlTheme  x : Key =" TreeDataGridExpandCollapseChevron" TargetType =" ToggleButton" 
201+         <Setter  Property =" Margin" Value =" 0" 
202+         <Setter  Property =" Width" Value =" 12" 
203+         <Setter  Property =" Height" Value =" 12" 
204+         <Setter  Property =" Template" 
205+           <ControlTemplate >
206+             <Border  Background =" Transparent" 
207+                     Width =" {TemplateBinding Width}" 
208+                     Height =" {TemplateBinding Height}" 
209+                     HorizontalAlignment =" Center" 
210+                     VerticalAlignment =" Center" 
211+               <Path  x : Name =" ChevronPath" 
212+                     Data =" {StaticResource TreeDataGridItemCollapsedChevronPathData}" 
213+                     Fill =" {TemplateBinding Foreground}" 
214+                     Stretch =" Uniform" 
215+                     HorizontalAlignment =" Center" 
216+                     VerticalAlignment =" Center" 
217+             </Border >
218+           </ControlTemplate >
219+         </Setter >
220+         <Style  Selector =" ^:checked /template/ Path#ChevronPath" 
221+           <Setter  Property =" Data" Value =" {StaticResource TreeDataGridItemExpandedChevronPathData}" 
222+         </Style >
223+       </ControlTheme >
224+ 
225+       <ControlTheme  x : Key =" {x:Type TreeDataGridExpanderCell}" TargetType =" TreeDataGridExpanderCell" 
226+         <Setter  Property =" Template" 
227+           <ControlTemplate >
228+             <Border  x : Name =" CellBorder" 
229+                     Background =" {TemplateBinding Background}" 
230+                     BorderBrush =" {TemplateBinding BorderBrush}" 
231+                     BorderThickness =" {TemplateBinding BorderThickness}" 
232+                     CornerRadius =" {TemplateBinding CornerRadius}" 
233+                     Padding =" {TemplateBinding Indent, Converter={x:Static conv:IndentConverter.Instance}}" 
234+               <DockPanel >
235+                 <Border  DockPanel.Dock=" Left" 
236+                         Margin =" 4 0" 
237+                         Width =" 12" Height =" 12" 
238+                   <ToggleButton  Theme =" {StaticResource TreeDataGridExpandCollapseChevron}" 
239+                                 Focusable =" False" 
240+                                 IsChecked =" {TemplateBinding IsExpanded, Mode=TwoWay}" 
241+                                 IsVisible =" {TemplateBinding ShowExpander}" 
242+                 </Border >
243+                 <Decorator  Name =" PART_Content" 
244+               </DockPanel >
245+             </Border >
246+           </ControlTemplate >
247+         </Setter >
248+       </ControlTheme >
249+ 
250+       <ControlTheme  x : Key =" {x:Type TreeDataGridTextCell}" TargetType =" TreeDataGridTextCell" 
251+         <Setter  Property =" Padding" Value =" 4 2" 
252+         <Setter  Property =" Template" 
253+           <ControlTemplate >
254+             <Border  x : Name =" CellBorder" 
255+                     Background =" {TemplateBinding Background}" 
256+                     BorderBrush =" {TemplateBinding BorderBrush}" 
257+                     BorderThickness =" {TemplateBinding BorderThickness}" 
258+                     CornerRadius =" {TemplateBinding CornerRadius}" 
259+                     Padding =" {TemplateBinding Padding}" 
260+               <TextBlock  Text =" {TemplateBinding Value}" 
261+                          TextTrimming =" {TemplateBinding TextTrimming}" 
262+                          TextWrapping =" {TemplateBinding TextWrapping}" 
263+                          TextAlignment =" {TemplateBinding TextAlignment}" 
264+                          VerticalAlignment =" Center" 
265+             </Border >
266+           </ControlTemplate >
267+         </Setter >
268+ 
269+         <Style  Selector =" ^:editing" 
270+           <Setter  Property =" Padding" Value =" 4 2" 
271+           <Setter  Property =" Template" 
272+             <ControlTemplate >
273+               <Border  x : Name =" CellBorder" 
274+                       Background =" {TemplateBinding Background}" 
275+                       BorderBrush =" {TemplateBinding BorderBrush}" 
276+                       BorderThickness =" {TemplateBinding BorderThickness}" 
277+                       CornerRadius =" {TemplateBinding CornerRadius}" 
278+                       Padding =" {TemplateBinding Padding}" 
279+                 <TextBox  Name =" PART_Edit" 
280+                          Text =" {TemplateBinding Value, Mode=TwoWay}" 
281+               </Border >
282+             </ControlTemplate >
283+           </Setter >
284+         </Style >
285+ 
286+         <Style  Selector =" ^:editing /template/ TextBox#PART_Edit" 
287+           <Setter  Property =" Background" Value =" Transparent" 
288+           <Setter  Property =" MinHeight" Value =" 25" 
289+           <Setter  Property =" Padding" Value =" 10,3,6,3" 
290+           <Setter  Property =" VerticalAlignment" Value =" Center" 
291+         </Style >
292+ 
293+         <Style  Selector =" ^:editing /template/ TextBox#PART_Edit DataValidationErrors" 
294+           <Setter  Property =" Template" Value =" {DynamicResource TooltipDataValidationContentTemplate}" 
295+           <Setter  Property =" ErrorTemplate" Value =" {DynamicResource TooltipDataValidationErrorTemplate}" 
296+         </Style >
297+ 
298+       </ControlTheme >
299+ 
300+       <ControlTheme  x : Key =" {x:Type TreeDataGridTemplateCell}" TargetType =" TreeDataGridTemplateCell" 
301+         <Setter  Property =" Template" 
302+           <ControlTemplate >
303+             <ContentPresenter  Name =" PART_ContentPresenter" 
304+                               Background =" {TemplateBinding Background}" 
305+                               BorderBrush =" {TemplateBinding BorderBrush}" 
306+                               BorderThickness =" {TemplateBinding BorderThickness}" 
307+                               ContentTemplate =" {TemplateBinding ContentTemplate}" 
308+                               CornerRadius =" {TemplateBinding CornerRadius}" 
309+                               Content =" {TemplateBinding Content}" 
310+                               Padding =" {TemplateBinding Padding}" 
311+           </ControlTemplate >
312+         </Setter >
313+ 
314+         <Style  Selector =" ^:editing" 
315+           <Setter  Property =" Padding" Value =" 4 2" 
316+           <Setter  Property =" Template" 
317+             <ControlTemplate >
318+               <ContentPresenter  Name =" PART_EditingContentPresenter" 
319+                                 Background =" {TemplateBinding Background}" 
320+                                 BorderBrush =" {TemplateBinding BorderBrush}" 
321+                                 BorderThickness =" {TemplateBinding BorderThickness}" 
322+                                 ContentTemplate =" {TemplateBinding EditingTemplate}" 
323+                                 CornerRadius =" {TemplateBinding CornerRadius}" 
324+                                 Content =" {TemplateBinding Content}" 
325+                                 Padding =" {TemplateBinding Padding}" 
326+             </ControlTemplate >
327+           </Setter >
328+         </Style >
329+       </ControlTheme >
330+     </ResourceDictionary >
331+ 
332+ <!--  Additional styling in Accents/Styles.axaml --> 
0 commit comments