Skip to content

Commit

Permalink
Renamed GroupBoxHelper and added a new AttachedProperty
Browse files Browse the repository at this point in the history
- Rename GroupBoxHelper to HeaderedControlHelper
- Added AttachedProperty HeaderBackground
  • Loading branch information
timunie authored and punker76 committed Oct 7, 2019
1 parent 729afb5 commit 63c90eb
Show file tree
Hide file tree
Showing 8 changed files with 131 additions and 100 deletions.
27 changes: 0 additions & 27 deletions src/MahApps.Metro/Controls/Helper/GroupBoxHelper.cs

This file was deleted.

44 changes: 44 additions & 0 deletions src/MahApps.Metro/Controls/Helper/HeaderedControlHelper.cs
@@ -0,0 +1,44 @@
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;

namespace MahApps.Metro.Controls
{
using System.ComponentModel;

public static class HeaderedControlHelper
{
public static readonly DependencyProperty HeaderForegroundProperty =
DependencyProperty.RegisterAttached("HeaderForeground", typeof(Brush), typeof(HeaderedControlHelper), new UIPropertyMetadata(Brushes.White));

[Category(AppName.MahApps)]
[AttachedPropertyBrowsableForType(typeof(GroupBox))]
[AttachedPropertyBrowsableForType(typeof(Expander))]
public static Brush GetHeaderForeground(UIElement element)
{
return (Brush)element.GetValue(HeaderForegroundProperty);
}

public static void SetHeaderForeground(UIElement element, Brush value)
{
element.SetValue(HeaderForegroundProperty, value);
}


public static readonly DependencyProperty HeaderBackgroundProperty =
DependencyProperty.RegisterAttached("HeaderBackground", typeof(Brush), typeof(HeaderedControlHelper), new UIPropertyMetadata(null));

[Category(AppName.MahApps)]
[AttachedPropertyBrowsableForType(typeof(GroupBox))]
[AttachedPropertyBrowsableForType(typeof(Expander))]
public static Brush GetHeaderBackground(UIElement element)
{
return (Brush)element.GetValue(HeaderBackgroundProperty);
}

public static void SetHeaderBackground(UIElement element, Brush value)
{
element.SetValue(HeaderBackgroundProperty, value);
}
}
}
41 changes: 23 additions & 18 deletions src/MahApps.Metro/Styles/Clean/CleanGroupBox.xaml
Expand Up @@ -6,7 +6,8 @@
<Setter Property="BorderBrush" Value="{DynamicResource MahApps.Brushes.Gray7}" />
<Setter Property="BorderThickness" Value="0.3" />
<Setter Property="Controls:ControlsHelper.HeaderFontSize" Value="16" />
<Setter Property="Controls:GroupBoxHelper.HeaderForeground" Value="{DynamicResource MahApps.Brushes.Text}" />
<Setter Property="Controls:HeaderedControlHelper.HeaderForeground" Value="{DynamicResource MahApps.Brushes.Text}" />
<Setter Property="Controls:HeaderedControlHelper.HeaderBackground" Value="{x:Null}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="GroupBox">
Expand All @@ -16,24 +17,28 @@
<RowDefinition Height="*" />
</Grid.RowDefinitions>

<Controls:ContentControlEx Grid.Row="0"
Margin="{TemplateBinding Padding}"
Content="{TemplateBinding Header}"
ContentCharacterCasing="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(Controls:ControlsHelper.ContentCharacterCasing)}"
ContentStringFormat="{TemplateBinding HeaderStringFormat}"
ContentTemplate="{TemplateBinding HeaderTemplate}"
ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}"
FontFamily="{TemplateBinding Controls:ControlsHelper.HeaderFontFamily}"
FontSize="{TemplateBinding Controls:ControlsHelper.HeaderFontSize}"
FontStretch="{TemplateBinding Controls:ControlsHelper.HeaderFontStretch}"
FontWeight="{TemplateBinding Controls:ControlsHelper.HeaderFontWeight}"
Foreground="{TemplateBinding Controls:GroupBoxHelper.HeaderForeground}"
RecognizesAccessKey="True"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
<Border Grid.Row="0"
Background="{TemplateBinding Controls:HeaderedControlHelper.HeaderBackground}"
BorderThickness="0">
<Controls:ContentControlEx Content="{TemplateBinding Header}"
Margin="{TemplateBinding Padding}"
ContentCharacterCasing="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(Controls:ControlsHelper.ContentCharacterCasing)}"
ContentStringFormat="{TemplateBinding HeaderStringFormat}"
ContentTemplate="{TemplateBinding HeaderTemplate}"
ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}"
FontFamily="{TemplateBinding Controls:ControlsHelper.HeaderFontFamily}"
FontSize="{TemplateBinding Controls:ControlsHelper.HeaderFontSize}"
FontStretch="{TemplateBinding Controls:ControlsHelper.HeaderFontStretch}"
FontWeight="{TemplateBinding Controls:ControlsHelper.HeaderFontWeight}"
Foreground="{TemplateBinding Controls:HeaderedControlHelper.HeaderForeground}"
RecognizesAccessKey="True"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border>

<Grid Grid.Row="1"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
VerticalAlignment="Stretch"
Background="{TemplateBinding Background}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
Expand All @@ -53,8 +58,8 @@
BorderThickness="{TemplateBinding BorderThickness}"
Style="{StaticResource InternalBorderStyle}" />

<ContentPresenter Grid.Column="1"
Content="{TemplateBinding Content}"
<ContentPresenter Content="{TemplateBinding Content}"
Grid.Column="1"
ContentTemplate="{TemplateBinding ContentTemplate}"
Cursor="{TemplateBinding Cursor}" />

Expand Down
41 changes: 21 additions & 20 deletions src/MahApps.Metro/Styles/Controls.Expander.xaml
Expand Up @@ -62,11 +62,11 @@
Stroke="{TemplateBinding Foreground}"
StrokeThickness="2" />
</Grid>
<Controls:ContentControlEx Grid.Row="1"
Margin="0 4 0 0"
<Controls:ContentControlEx Content="{TemplateBinding Content}"
Grid.Row="1"
Margin="0,4,0,0"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
Content="{TemplateBinding Content}"
ContentCharacterCasing="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(Controls:ControlsHelper.ContentCharacterCasing)}"
ContentStringFormat="{TemplateBinding ContentStringFormat}"
ContentTemplate="{TemplateBinding ContentTemplate}"
Expand Down Expand Up @@ -136,11 +136,11 @@
Stroke="{TemplateBinding Foreground}"
StrokeThickness="2" />
</Grid>
<Controls:ContentControlEx Grid.Column="1"
Margin="4 0 0 0"
<Controls:ContentControlEx Content="{TemplateBinding Content}"
Grid.Column="1"
Margin="4,0,0,0"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
Content="{TemplateBinding Content}"
ContentCharacterCasing="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(Controls:ControlsHelper.ContentCharacterCasing)}"
ContentStringFormat="{TemplateBinding ContentStringFormat}"
ContentTemplate="{TemplateBinding ContentTemplate}"
Expand Down Expand Up @@ -209,11 +209,11 @@
Stroke="{TemplateBinding Foreground}"
StrokeThickness="2" />
</Grid>
<Controls:ContentControlEx Grid.Row="1"
Margin="0 4 0 0"
<Controls:ContentControlEx Content="{TemplateBinding Content}"
Grid.Row="1"
Margin="0,4,0,0"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
Content="{TemplateBinding Content}"
ContentCharacterCasing="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(Controls:ControlsHelper.ContentCharacterCasing)}"
ContentStringFormat="{TemplateBinding ContentStringFormat}"
ContentTemplate="{TemplateBinding ContentTemplate}"
Expand Down Expand Up @@ -272,11 +272,11 @@
Stroke="{TemplateBinding Foreground}"
StrokeThickness="2" />
</Grid>
<Controls:ContentControlEx Grid.Column="1"
Margin="4 0 0 0"
<Controls:ContentControlEx Content="{TemplateBinding Content}"
Grid.Column="1"
Margin="4,0,0,0"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
Content="{TemplateBinding Content}"
ContentCharacterCasing="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(Controls:ControlsHelper.ContentCharacterCasing)}"
ContentStringFormat="{TemplateBinding ContentStringFormat}"
ContentTemplate="{TemplateBinding ContentTemplate}"
Expand Down Expand Up @@ -325,7 +325,7 @@
</Storyboard>

<Style x:Key="MahApps.Styles.Expander" TargetType="{x:Type Expander}">
<Setter Property="Background" Value="{DynamicResource MahApps.Brushes.Accent}" />
<Setter Property="Background" Value="{x:Null}" />
<Setter Property="BorderBrush" Value="{DynamicResource MahApps.Brushes.Accent}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Controls:ControlsHelper.ContentCharacterCasing" Value="Upper" />
Expand All @@ -334,7 +334,8 @@
<Setter Property="Controls:ExpanderHelper.HeaderLeftStyle" Value="{StaticResource MahApps.Styles.ToggleButton.ExpanderHeader.Left}" />
<Setter Property="Controls:ExpanderHelper.HeaderRightStyle" Value="{StaticResource MahApps.Styles.ToggleButton.ExpanderHeader.Right}" />
<Setter Property="Controls:ExpanderHelper.HeaderUpStyle" Value="{StaticResource MahApps.Styles.ToggleButton.ExpanderHeader.Up}" />
<Setter Property="Controls:GroupBoxHelper.HeaderForeground" Value="{x:Null}" />
<Setter Property="Controls:HeaderedControlHelper.HeaderForeground" Value="{x:Null}" />
<Setter Property="Controls:HeaderedControlHelper.HeaderBackground" Value="{DynamicResource MahApps.Brushes.Accent}" />
<Setter Property="Foreground" Value="{DynamicResource MahApps.Brushes.Black}" />
<Setter Property="Padding" Value="4" />
<Setter Property="SnapsToDevicePixels" Value="True" />
Expand All @@ -348,16 +349,16 @@
Opacity="0" />
<DockPanel x:Name="ExpanderRoot">
<Border x:Name="HeaderSite"
Background="{TemplateBinding Background}"
Background="{TemplateBinding Controls:HeaderedControlHelper.HeaderBackground}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(Controls:ControlsHelper.CornerRadius), Converter={StaticResource CornerRadiusBindingConverter}, ConverterParameter={x:Static Converters:RadiusType.Bottom}}"
DockPanel.Dock="Top"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
UseLayoutRounding="True">
<ToggleButton x:Name="ToggleSite"
Controls:ControlsHelper.ContentCharacterCasing="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(Controls:ControlsHelper.ContentCharacterCasing)}"
Content="{TemplateBinding Header}"
Controls:ControlsHelper.ContentCharacterCasing="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(Controls:ControlsHelper.ContentCharacterCasing)}"
ContentStringFormat="{TemplateBinding HeaderStringFormat}"
ContentTemplate="{TemplateBinding HeaderTemplate}"
ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}"
Expand All @@ -374,7 +375,7 @@
Path="Background"
RelativeSource="{RelativeSource TemplatedParent}" />
<Binding Mode="OneWay"
Path="(Controls:GroupBoxHelper.HeaderForeground)"
Path="(Controls:HeaderedControlHelper.HeaderForeground)"
RelativeSource="{RelativeSource TemplatedParent}" />
</MultiBinding>
</ToggleButton.Foreground>
Expand All @@ -383,7 +384,7 @@
<Border x:Name="ExpandSite"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
Background="Transparent"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=BorderThickness, Converter={StaticResource ThicknessBindingConverter}, ConverterParameter={x:Static Converters:ThicknessSideType.Top}}"
CornerRadius="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(Controls:ControlsHelper.CornerRadius), Converter={StaticResource CornerRadiusBindingConverter}, ConverterParameter={x:Static Converters:RadiusType.Top}}"
Expand All @@ -393,8 +394,8 @@
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
UseLayoutRounding="True"
Visibility="Collapsed">
<ContentPresenter Margin="{TemplateBinding Padding}"
Content="{TemplateBinding Content}"
<ContentPresenter Content="{TemplateBinding Content}"
Margin="{TemplateBinding Padding}"
ContentTemplate="{TemplateBinding ContentTemplate}"
Cursor="{TemplateBinding Cursor}"
UseLayoutRounding="False" />
Expand Down

0 comments on commit 63c90eb

Please sign in to comment.