Skip to content

Commit 8585b3e

Browse files
authored
GroupBoxAssist.HeaderPadding (#3569)
1 parent 3aa4967 commit 8585b3e

File tree

3 files changed

+53
-9
lines changed

3 files changed

+53
-9
lines changed

src/MainDemo.Wpf/GroupBoxes.xaml

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -95,12 +95,39 @@
9595
</GroupBox>
9696
</smtx:XamlDisplay>
9797
</WrapPanel>
98+
99+
<Rectangle Style="{StaticResource PageSectionSeparator}" />
100+
<TextBlock Style="{StaticResource PageSectionTitleTextBlock}" Text="Header Padding" />
101+
102+
<WrapPanel>
103+
<smtx:XamlDisplay UniqueKey="groupbox_7">
104+
<GroupBox Width="300" Height="100" Header="Header"
105+
materialDesign:GroupBoxAssist.HeaderPadding="4" Padding="0"
106+
Style="{StaticResource MaterialDesignGroupBox}">
107+
<ScrollViewer>
108+
<TextBlock Margin="8" TextWrapping="Wrap"
109+
Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." />
110+
</ScrollViewer>
111+
</GroupBox>
112+
</smtx:XamlDisplay>
113+
114+
<smtx:XamlDisplay UniqueKey="groupbox_8">
115+
<GroupBox Width="300" Height="100" Header="Header"
116+
materialDesign:GroupBoxAssist.HeaderPadding="4" Padding="0"
117+
Style="{StaticResource MaterialDesignCardGroupBox}">
118+
<ScrollViewer>
119+
<TextBlock Margin="8" TextWrapping="Wrap"
120+
Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." />
121+
</ScrollViewer>
122+
</GroupBox>
123+
</smtx:XamlDisplay>
124+
</WrapPanel>
98125

99126
<Rectangle Style="{StaticResource PageSectionSeparator}" />
100127
<TextBlock Style="{StaticResource PageSectionTitleTextBlock}" Text="Card" />
101128

102129
<WrapPanel>
103-
<smtx:XamlDisplay UniqueKey="groupbox_7">
130+
<smtx:XamlDisplay UniqueKey="groupbox_9">
104131
<GroupBox Width="300"
105132
Header="Card Group Box"
106133
Style="{StaticResource MaterialDesignCardGroupBox}">
@@ -117,7 +144,7 @@
117144
</GroupBox>
118145
</smtx:XamlDisplay>
119146

120-
<smtx:XamlDisplay UniqueKey="groupbox_8">
147+
<smtx:XamlDisplay UniqueKey="groupbox_10">
121148
<GroupBox Width="300"
122149
materialDesign:ColorZoneAssist.Mode="SecondaryMid"
123150
Header="Card Group Box Secondary"
@@ -144,7 +171,7 @@
144171
</GroupBox>
145172
</smtx:XamlDisplay>
146173

147-
<smtx:XamlDisplay UniqueKey="groupbox_9">
174+
<smtx:XamlDisplay UniqueKey="groupbox_11">
148175
<GroupBox Width="300"
149176
materialDesign:ColorZoneAssist.Mode="SecondaryMid"
150177
Header="Card Group Box Accent"
@@ -171,7 +198,7 @@
171198
</GroupBox>
172199
</smtx:XamlDisplay>
173200

174-
<smtx:XamlDisplay UniqueKey="groupbox_10">
201+
<smtx:XamlDisplay UniqueKey="groupbox_12">
175202
<GroupBox Width="300"
176203
materialDesign:ColorZoneAssist.Background="Black"
177204
materialDesign:ColorZoneAssist.Foreground="White"
@@ -202,7 +229,7 @@
202229

203230
<smtx:XamlDisplay Grid.Row="3"
204231
Grid.Column="0"
205-
UniqueKey="groupbox_11">
232+
UniqueKey="groupbox_13">
206233
<GroupBox Margin="16"
207234
materialDesign:ElevationAssist.Elevation="Dp6"
208235
Background="White"
@@ -215,7 +242,7 @@
215242
</smtx:XamlDisplay>
216243
<smtx:XamlDisplay Grid.Row="3"
217244
Grid.Column="1"
218-
UniqueKey="groupbox_12">
245+
UniqueKey="groupbox_14">
219246
<GroupBox Margin="16"
220247
materialDesign:ElevationAssist.Elevation="Dp6"
221248
Background="White"
@@ -229,7 +256,7 @@
229256
</smtx:XamlDisplay>
230257
<smtx:XamlDisplay Grid.Row="3"
231258
Grid.Column="2"
232-
UniqueKey="groupbox_13">
259+
UniqueKey="groupbox_15">
233260
<GroupBox Margin="16"
234261
materialDesign:ElevationAssist.Elevation="Dp6"
235262
Header="Elevation on Card"
@@ -240,6 +267,7 @@
240267
</GroupBox>
241268
</smtx:XamlDisplay>
242269
</WrapPanel>
270+
243271
</StackPanel>
244272
</UserControl>
245273

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
namespace MaterialDesignThemes.Wpf;
2+
3+
public static class GroupBoxAssist
4+
{
5+
private const double DefaultHeaderPadding = 9.0;
6+
7+
#region AttachedProperty : HeaderPaddingProperty
8+
public static readonly DependencyProperty HeaderPaddingProperty
9+
= DependencyProperty.RegisterAttached("HeaderPadding", typeof(double), typeof(GroupBoxAssist), new PropertyMetadata(DefaultHeaderPadding));
10+
11+
public static double GetHeaderPadding(GroupBox element) => (double)element.GetValue(HeaderPaddingProperty);
12+
public static void SetHeaderPadding(GroupBox element, double headerPadding) => element.SetValue(HeaderPaddingProperty, headerPadding);
13+
#endregion
14+
}

src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.GroupBox.xaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
<Setter Property="BorderThickness" Value="1" />
2727
<Setter Property="Foreground" Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type FrameworkElement}}, Path=(TextElement.Foreground)}" />
2828
<Setter Property="Padding" Value="9" />
29+
<Setter Property="wpf:GroupBoxAssist.HeaderPadding" Value="9" />
2930
<Setter Property="SnapsToDevicePixels" Value="true" />
3031
<Setter Property="Template">
3132
<Setter.Value>
@@ -37,7 +38,7 @@
3738
BorderThickness="{TemplateBinding BorderThickness}" />
3839
<DockPanel Margin="{TemplateBinding BorderThickness}">
3940
<wpf:ColorZone x:Name="PART_ColorZone"
40-
Padding="{TemplateBinding Padding}"
41+
Padding="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:GroupBoxAssist.HeaderPadding)}"
4142
wpf:ColorZoneAssist.Background="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:ColorZoneAssist.Background)}"
4243
wpf:ColorZoneAssist.Foreground="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:ColorZoneAssist.Foreground)}"
4344
DockPanel.Dock="Top"
@@ -78,14 +79,15 @@
7879
<Setter Property="BorderThickness" Value="0" />
7980
<Setter Property="Foreground" Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type FrameworkElement}}, Path=(TextElement.Foreground)}" />
8081
<Setter Property="Padding" Value="9" />
82+
<Setter Property="wpf:GroupBoxAssist.HeaderPadding" Value="9" />
8183
<Setter Property="SnapsToDevicePixels" Value="true" />
8284
<Setter Property="Template">
8385
<Setter.Value>
8486
<ControlTemplate TargetType="{x:Type GroupBox}">
8587
<wpf:Card VerticalAlignment="Stretch" wpf:ElevationAssist.Elevation="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:ElevationAssist.Elevation)}">
8688
<DockPanel Background="{TemplateBinding Background}">
8789
<wpf:ColorZone x:Name="PART_ColorZone"
88-
Padding="{TemplateBinding Padding}"
90+
Padding="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:GroupBoxAssist.HeaderPadding)}"
8991
wpf:ColorZoneAssist.Background="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:ColorZoneAssist.Background)}"
9092
wpf:ColorZoneAssist.Foreground="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:ColorZoneAssist.Foreground)}"
9193
DockPanel.Dock="Top"

0 commit comments

Comments
 (0)