Skip to content

Commit 84c96cc

Browse files
committed
moved thumb styles into own resource dictionary, provided thumb default style, cleaned up ListViewStyle
1 parent c518e19 commit 84c96cc

File tree

6 files changed

+85
-58
lines changed

6 files changed

+85
-58
lines changed

MaterialDesignThemes.Wpf/ListViewAssist.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ public static class ListViewAssist
88
"ListViewItemPadding",
99
typeof(Thickness),
1010
typeof(ListViewAssist),
11-
new FrameworkPropertyMetadata(new Thickness(13, 8, 8, 8), FrameworkPropertyMetadataOptions.Inherits));
11+
new FrameworkPropertyMetadata(new Thickness(8, 8, 8, 8), FrameworkPropertyMetadataOptions.Inherits));
1212

1313
public static void SetListViewItemPadding(DependencyObject element, Thickness value)
1414
{

MaterialDesignThemes.Wpf/MaterialDesignThemes.Wpf.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,10 @@
246246
<SubType>Designer</SubType>
247247
<Generator>MSBuild:Compile</Generator>
248248
</Page>
249+
<Page Include="Themes\MaterialDesignTheme.Thumb.xaml">
250+
<Generator>MSBuild:Compile</Generator>
251+
<SubType>Designer</SubType>
252+
</Page>
249253
</ItemGroup>
250254
<ItemGroup>
251255
<Compile Include="Badged.cs" />

MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.DataGrid.xaml

Lines changed: 7 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/materialdesigntheme.checkbox.xaml" />
99
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.DataGrid.ComboBox.xaml" />
1010
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Shadows.xaml" />
11-
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.TextBox.xaml" />
11+
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.TextBox.xaml" />
12+
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Thumb.xaml" />
1213
</ResourceDictionary.MergedDictionaries>
1314

1415
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
@@ -34,7 +35,6 @@
3435
<Style x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type ComboBox}, ResourceId=MaterialDataGridComboBoxColumnEditingStyle}"
3536
TargetType="{x:Type ComboBox}"
3637
BasedOn="{StaticResource MaterialDesignDataGridComboBox}">
37-
3838
</Style>
3939

4040
<Style x:Key="MaterialDesignDataGridTextColumnEditingStyle" TargetType="{x:Type TextBox}" BasedOn="{StaticResource MaterialDesignTextBox}">
@@ -185,20 +185,7 @@
185185
</Trigger>
186186
</Style.Triggers>
187187
</Style>
188-
189-
<Style x:Key="MaterialDesignDataGridColumnHeaderGripper" TargetType="{x:Type Thumb}">
190-
<Setter Property="Width" Value="8"/>
191-
<Setter Property="Background" Value="Transparent"/>
192-
<Setter Property="Cursor" Value="SizeWE"/>
193-
<Setter Property="Template">
194-
<Setter.Value>
195-
<ControlTemplate TargetType="{x:Type Thumb}">
196-
<Border Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}"/>
197-
</ControlTemplate>
198-
</Setter.Value>
199-
</Setter>
200-
</Style>
201-
188+
202189
<Style x:Key="MaterialDesignDataGridColumnHeader" TargetType="{x:Type DataGridColumnHeader}">
203190
<Setter Property="VerticalContentAlignment" Value="Center"/>
204191
<Setter Property="TextBlock.FontSize" Value="12" />
@@ -233,8 +220,8 @@
233220
Margin="{TemplateBinding Padding}"/>
234221
</StackPanel>
235222
</Border>
236-
<Thumb x:Name="PART_LeftHeaderGripper" HorizontalAlignment="Left" Style="{StaticResource MaterialDesignDataGridColumnHeaderGripper}"/>
237-
<Thumb x:Name="PART_RightHeaderGripper" HorizontalAlignment="Right" Style="{StaticResource MaterialDesignDataGridColumnHeaderGripper}"/>
223+
<Thumb x:Name="PART_LeftHeaderGripper" HorizontalAlignment="Left" Style="{StaticResource MaterialDesignGridColumnHeaderGripper}"/>
224+
<Thumb x:Name="PART_RightHeaderGripper" HorizontalAlignment="Right" Style="{StaticResource MaterialDesignGridColumnHeaderGripper}"/>
238225
</Grid>
239226
<ControlTemplate.Triggers>
240227
<Trigger Property="IsMouseOver" Value="True">
@@ -261,19 +248,6 @@
261248
</Setter>
262249
</Style>
263250

264-
<Style x:Key="MaterialDesignDataGridRowHeaderGripper" TargetType="{x:Type Thumb}">
265-
<Setter Property="Height" Value="8"/>
266-
<Setter Property="Background" Value="Transparent"/>
267-
<Setter Property="Cursor" Value="SizeNS"/>
268-
<Setter Property="Template">
269-
<Setter.Value>
270-
<ControlTemplate TargetType="{x:Type Thumb}">
271-
<Border Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}"/>
272-
</ControlTemplate>
273-
</Setter.Value>
274-
</Setter>
275-
</Style>
276-
277251
<Style x:Key="MaterialDesignDataGridRowHeader" TargetType="{x:Type DataGridRowHeader}">
278252
<Setter Property="Template">
279253
<Setter.Value>
@@ -285,8 +259,8 @@
285259
<Control SnapsToDevicePixels="false" Template="{Binding ValidationErrorTemplate, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}}}" Visibility="{Binding (Validation.HasError), Converter={StaticResource BooleanToVisibilityConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}}}"/>
286260
</StackPanel>
287261
</Border>
288-
<Thumb x:Name="PART_TopHeaderGripper" Style="{StaticResource MaterialDesignDataGridRowHeaderGripper}" VerticalAlignment="Top"/>
289-
<Thumb x:Name="PART_BottomHeaderGripper" Style="{StaticResource MaterialDesignDataGridRowHeaderGripper}" VerticalAlignment="Bottom"/>
262+
<Thumb x:Name="PART_TopHeaderGripper" Style="{StaticResource MaterialDesignGridRowHeaderGripper}" VerticalAlignment="Top"/>
263+
<Thumb x:Name="PART_BottomHeaderGripper" Style="{StaticResource MaterialDesignGridRowHeaderGripper}" VerticalAlignment="Bottom"/>
290264
</Grid>
291265
</ControlTemplate>
292266
</Setter.Value>

MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.Defaults.xaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ToolBarTray.xaml" />
3434
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ToolTip.xaml" />
3535
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.TreeView.xaml" />
36+
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Thumb.xaml" />
3637
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ListView.xaml" />
3738
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ValidationErrorTemplate.xaml" />
3839
</ResourceDictionary.MergedDictionaries>
@@ -47,6 +48,7 @@
4748
<Style TargetType="{x:Type CheckBox}" BasedOn="{StaticResource MaterialDesignCheckBox}" />
4849
<Style TargetType="{x:Type ComboBox}" BasedOn="{StaticResource MaterialDesignComboBox}" />
4950
<Style TargetType="{x:Type ContextMenu}" BasedOn="{StaticResource MaterialDesignContextMenu}" />
51+
<Style TargetType="{x:Type Thumb}" BasedOn="{StaticResource MaterialDesignThumb}" />
5052
<Style TargetType="{x:Type DataGrid}" BasedOn="{StaticResource MaterialDesignDataGrid}" />
5153
<Style TargetType="{x:Type DataGridCell}" BasedOn="{StaticResource MaterialDesignDataGridCell}" />
5254
<Style TargetType="{x:Type DataGridColumnHeader}" BasedOn="{StaticResource MaterialDesignDataGridColumnHeader}" />

MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.ListView.xaml

Lines changed: 39 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
<ResourceDictionary.MergedDictionaries>
66
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.TextBox.xaml" />
7+
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Thumb.xaml" />
78
</ResourceDictionary.MergedDictionaries>
89

910
<Style x:Key="{x:Static GridView.GridViewScrollViewerStyleKey}" TargetType="{x:Type ScrollViewer}">
@@ -25,9 +26,7 @@
2526
Focusable="false"
2627
HorizontalScrollBarVisibility="Hidden"
2728
VerticalScrollBarVisibility="Hidden">
28-
2929
<Border BorderBrush="{DynamicResource MaterialDesignDivider}" BorderThickness="0,0,0,1">
30-
3130
<GridViewHeaderRowPresenter x:Name="PART_GridViewHeaderRowPresenter"
3231
AllowsColumnReorder="{Binding Path=TemplatedParent.View.AllowsColumnReorder, RelativeSource={RelativeSource TemplatedParent}}"
3332
ColumnHeaderContainerStyle="{Binding Path=TemplatedParent.View.ColumnHeaderContainerStyle, RelativeSource={RelativeSource TemplatedParent}}"
@@ -38,7 +37,6 @@
3837
Columns="{Binding Path=TemplatedParent.View.Columns, RelativeSource={RelativeSource TemplatedParent}}"
3938
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
4039
</Border>
41-
4240
</ScrollViewer>
4341

4442
<ScrollContentPresenter Name="PART_ScrollContentPresenter"
@@ -70,29 +68,17 @@
7068
</Setter>
7169
</Style>
7270

73-
<Style x:Key="GridViewColumnHeaderGripper" TargetType="Thumb">
74-
<Setter Property="Width" Value="8" />
75-
<Setter Property="Background" Value="Transparent" />
76-
<Setter Property="Cursor" Value="SizeWE" />
77-
<Setter Property="Template">
78-
<Setter.Value>
79-
<ControlTemplate TargetType="{x:Type Thumb}">
80-
<Border Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}" />
81-
</ControlTemplate>
82-
</Setter.Value>
83-
</Setter>
84-
</Style>
85-
8671
<Style x:Key="{x:Type GridViewColumnHeader}" TargetType="GridViewColumnHeader">
8772
<Setter Property="HorizontalContentAlignment" Value="Left" />
8873
<Setter Property="VerticalContentAlignment" Value="Center" />
8974
<Setter Property="TextBlock.FontWeight" Value="Medium" />
75+
<Setter Property="OverridesDefaultStyle" Value="True" />
9076
<Setter Property="Padding" Value="{Binding RelativeSource={RelativeSource Self}, Path=(wpf:DataGridAssist.ColumnHeaderPadding)}" />
9177
<Setter Property="Foreground" Value="{DynamicResource MaterialDesignColumnHeader}" />
9278
<Setter Property="Template">
9379
<Setter.Value>
9480
<ControlTemplate TargetType="GridViewColumnHeader">
95-
<Grid>
81+
<DockPanel>
9682
<Border x:Name="HeaderBorder"
9783
Padding="{TemplateBinding Padding}"
9884
BorderThickness="{TemplateBinding BorderThickness}">
@@ -102,11 +88,13 @@
10288
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
10389
RecognizesAccessKey="True"
10490
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
91+
10592
</Border>
10693
<Thumb x:Name="PART_HeaderGripper"
10794
HorizontalAlignment="Right"
108-
Style="{StaticResource GridViewColumnHeaderGripper}" />
109-
</Grid>
95+
DockPanel.Dock="Right"
96+
Style="{StaticResource MaterialDesignGridColumnHeaderGripper}" />
97+
</DockPanel>
11098
<ControlTemplate.Triggers>
11199
<Trigger Property="IsMouseOver" Value="True">
112100
<Setter Property="Foreground" Value="{DynamicResource MaterialDesignBody}" />
@@ -115,6 +103,30 @@
115103
</ControlTemplate>
116104
</Setter.Value>
117105
</Setter>
106+
<Style.Triggers>
107+
<Trigger Property="Role" Value="Floating">
108+
<Setter Property="Opacity" Value="0.7" />
109+
<Setter Property="Template">
110+
<Setter.Value>
111+
<ControlTemplate TargetType="GridViewColumnHeader">
112+
<DockPanel Name="PART_FloatingHeaderCanvas">
113+
<Border BorderBrush="{DynamicResource PrimaryHueMidBrush}" BorderThickness="1" />
114+
</DockPanel>
115+
</ControlTemplate>
116+
</Setter.Value>
117+
</Setter>
118+
</Trigger>
119+
<Trigger Property="Role" Value="Padding">
120+
<Setter Property="Opacity" Value="0.7" />
121+
<Setter Property="Template">
122+
<Setter.Value>
123+
<ControlTemplate TargetType="GridViewColumnHeader">
124+
<Canvas Name="PART_FloatingHeaderCanvas" />
125+
</ControlTemplate>
126+
</Setter.Value>
127+
</Setter>
128+
</Trigger>
129+
</Style.Triggers>
118130
</Style>
119131

120132
<Style x:Key="MaterialDesignListView" TargetType="{x:Type ListView}">
@@ -139,7 +151,7 @@
139151
<ItemsPresenter />
140152
</ScrollViewer>
141153
<ControlTemplate.Triggers>
142-
<Trigger Property="IsGrouping" Value="true">
154+
<Trigger Property="IsGrouping" Value="True">
143155
<Setter Property="ScrollViewer.CanContentScroll" Value="false" />
144156
</Trigger>
145157
</ControlTemplate.Triggers>
@@ -149,8 +161,8 @@
149161
</Style>
150162

151163
<Style x:Key="MaterialDesignListViewItem" TargetType="ListViewItem">
152-
<Setter Property="SnapsToDevicePixels" Value="true" />
153-
<Setter Property="OverridesDefaultStyle" Value="true" />
164+
<Setter Property="SnapsToDevicePixels" Value="True" />
165+
<Setter Property="OverridesDefaultStyle" Value="True" />
154166
<Setter Property="Background" Value="Transparent" />
155167
<Setter Property="BorderBrush" Value="Transparent" />
156168
<Setter Property="Template">
@@ -161,7 +173,7 @@
161173
Background="{TemplateBinding Background}"
162174
BorderBrush="{DynamicResource MaterialDesignDivider}"
163175
BorderThickness="0,0,0,1"
164-
SnapsToDevicePixels="True">
176+
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}">
165177
<GridViewRowPresenter VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
166178
</Border>
167179
</ControlTemplate>
@@ -186,14 +198,17 @@
186198
</MultiTrigger>
187199
<MultiTrigger>
188200
<MultiTrigger.Conditions>
189-
<Condition Property="IsSelected" Value="true" />
201+
<Condition Property="IsSelected" Value="True" />
190202
<Condition Property="Selector.IsSelectionActive" Value="True" />
191203
</MultiTrigger.Conditions>
192204
<Setter Property="Foreground" Value="{DynamicResource MaterialDesignBody}" />
193205
</MultiTrigger>
194206
<Trigger Property="IsEnabled" Value="false">
195207
<Setter Property="Opacity" Value=".56" />
196208
</Trigger>
209+
<Trigger Property="ItemsControl.AlternationIndex" Value="1">
210+
<Setter Property="Background" Value="{DynamicResource MaterialDesignDivider}" />
211+
</Trigger>
197212
</Style.Triggers>
198213
</Style>
199214

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
2+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
3+
xmlns:local="clr-namespace:MaterialDesignTheme">
4+
5+
<Style x:Key="MaterialDesignThumb" TargetType="{x:Type Thumb}">
6+
<Setter Property="SnapsToDevicePixels" Value="True" />
7+
<Setter Property="Padding" Value="8" />
8+
<Setter Property="Background" Value="Transparent" />
9+
<Setter Property="OverridesDefaultStyle" Value="True" />
10+
<Setter Property="Template">
11+
<Setter.Value>
12+
<ControlTemplate TargetType="{x:Type Thumb}">
13+
<Border x:Name="PART_Border"
14+
Padding="{TemplateBinding Padding}"
15+
Background="{TemplateBinding Background}"
16+
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
17+
</ControlTemplate>
18+
</Setter.Value>
19+
</Setter>
20+
</Style>
21+
22+
<Style x:Key="MaterialDesignGridRowHeaderGripper" TargetType="{x:Type Thumb}" BasedOn="{StaticResource MaterialDesignThumb}">
23+
<Setter Property="Height" Value="8"/>
24+
<Setter Property="Cursor" Value="SizeNS"/>
25+
</Style>
26+
27+
<Style x:Key="MaterialDesignGridColumnHeaderGripper" TargetType="{x:Type Thumb}" BasedOn="{StaticResource MaterialDesignThumb}">
28+
<Setter Property="Width" Value="8"/>
29+
<Setter Property="Cursor" Value="SizeWE"/>
30+
</Style>
31+
32+
</ResourceDictionary>

0 commit comments

Comments
 (0)