Skip to content

Commit 9626e26

Browse files
committed
custom padding on grid view
1 parent 92d619b commit 9626e26

File tree

3 files changed

+35
-4
lines changed

3 files changed

+35
-4
lines changed

MainDemo.Wpf/Grids.xaml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@
1717
<ScrollViewer>
1818
<StackPanel>
1919
<TextBlock>Custom Columns</TextBlock>
20-
<DataGrid Margin="0 8 0 0" ItemsSource="{Binding Items3}" CanUserSortColumns="True" CanUserAddRows="False" AutoGenerateColumns="False" HeadersVisibility="All">
20+
<DataGrid Margin="0 8 0 0" ItemsSource="{Binding Items3}" CanUserSortColumns="True" CanUserAddRows="False" AutoGenerateColumns="False"
21+
wpf:DataGridAssist.CellPadding="13 8 8 8" wpf:DataGridAssist.ColumnHeaderPadding="8">
2122
<DataGrid.Columns>
2223
<DataGridCheckBoxColumn Binding="{Binding IsSelected}"
2324
ElementStyle="{StaticResource MaterialDesignDataGridCheckBoxColumnStyle}"
@@ -69,6 +70,10 @@
6970
</DataGrid>
7071
<TextBlock Margin="0 24 0 0">Auto Generated Columns</TextBlock>
7172
<DataGrid Margin="0 8 0 0" ItemsSource="{Binding Items3}" CanUserSortColumns="True" CanUserAddRows="False" />
73+
<TextBlock Margin="0 24 0 0">Custom Padding</TextBlock>
74+
<DataGrid Margin="0 8 0 0" ItemsSource="{Binding Items3}" CanUserSortColumns="True" CanUserAddRows="False"
75+
wpf:DataGridAssist.CellPadding="4 2 2 2" wpf:DataGridAssist.ColumnHeaderPadding="4 2 2 2"
76+
/>
7277
</StackPanel>
7378
</ScrollViewer>
7479
</UserControl>

MaterialDesignThemes.Wpf/DataGridAssist.cs

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,32 @@ public static void SetAutoGeneratedEditingTextStyle(DependencyObject element, St
7878
public static Style GetAutoGeneratedEditingTextStyle(DependencyObject element)
7979
{
8080
return (Style) element.GetValue(AutoGeneratedEditingTextStyleProperty);
81-
}
81+
}
82+
83+
public static readonly DependencyProperty CellPaddingProperty = DependencyProperty.RegisterAttached(
84+
"CellPadding", typeof (Thickness), typeof (DataGridAssist), new FrameworkPropertyMetadata(new Thickness(13, 8, 8, 8), FrameworkPropertyMetadataOptions.Inherits));
85+
86+
public static void SetCellPadding(DependencyObject element, Thickness value)
87+
{
88+
element.SetValue(CellPaddingProperty, value);
89+
}
90+
91+
public static Thickness GetCellPadding(DependencyObject element)
92+
{
93+
return (Thickness) element.GetValue(CellPaddingProperty);
94+
}
95+
96+
public static readonly DependencyProperty ColumnHeaderPaddingProperty = DependencyProperty.RegisterAttached(
97+
"ColumnHeaderPadding", typeof (Thickness), typeof (DataGridAssist), new FrameworkPropertyMetadata(new Thickness(8), FrameworkPropertyMetadataOptions.Inherits));
98+
99+
public static void SetColumnHeaderPadding(DependencyObject element, Thickness value)
100+
{
101+
element.SetValue(ColumnHeaderPaddingProperty, value);
102+
}
103+
104+
public static Thickness GetColumnHeaderPadding(DependencyObject element)
105+
{
106+
return (Thickness) element.GetValue(ColumnHeaderPaddingProperty);
107+
}
82108
}
83109
}

MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.DataGrid.xaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@
136136

137137
<Style x:Key="MaterialDesignDataGridCell" TargetType="{x:Type DataGridCell}">
138138
<Setter Property="TextBlock.FontSize" Value="13" />
139-
<Setter Property="Padding" Value="13 8 8 8" />
139+
<Setter Property="Padding" Value="{Binding RelativeSource={RelativeSource Self}, Path=(wpf:DataGridAssist.CellPadding)}" />
140140
<Setter Property="Background" Value="Transparent"/>
141141
<Setter Property="BorderBrush" Value="Transparent"/>
142142
<Setter Property="Template">
@@ -190,7 +190,7 @@
190190
<Setter Property="VerticalContentAlignment" Value="Center"/>
191191
<Setter Property="TextBlock.FontSize" Value="12" />
192192
<Setter Property="TextBlock.FontWeight" Value="Medium" />
193-
<Setter Property="Padding" Value="8 8 8 8" />
193+
<Setter Property="Padding" Value="{Binding RelativeSource={RelativeSource Self}, Path=(wpf:DataGridAssist.ColumnHeaderPadding)}" />
194194
<Setter Property="Foreground" Value="{DynamicResource MaterialDesignColumnHeader}" />
195195
<Setter Property="Template">
196196
<Setter.Value>

0 commit comments

Comments
 (0)