Skip to content

Commit a0b77de

Browse files
committed
Adding MahAppsCustomColorTheme and more naming conversion from Accent to Secondary
1 parent 1ec5afa commit a0b77de

File tree

6 files changed

+74
-40
lines changed

6 files changed

+74
-40
lines changed

MahMaterialDragablzMashUp/App.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<Application.Resources>
99
<ResourceDictionary>
1010
<ResourceDictionary.MergedDictionaries>
11-
<materialDesign:MahAppsBundledTheme BaseTheme="Light" PrimaryColor="DeepPurple" AccentColor="Lime"/>
11+
<materialDesign:MahAppsBundledTheme BaseTheme="Light" PrimaryColor="DeepPurple" SecondaryColor="Lime"/>
1212

1313
<!-- MahApps -->
1414
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />

MainDemo.Wpf/App.xaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717
<ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Accent/MaterialDesignColor.Lime.xaml" />
1818

1919
<!-- However, however you can make it simpler by just using one of the built-in themes. This is functionally identical to what is above.-->
20-
<!--<materialDesign:BundledTheme BaseTheme="Light" PrimaryColor="DeepPurple" AccentColor="Lime" />-->
20+
<!--<materialDesign:BundledTheme BaseTheme="Light" PrimaryColor="DeepPurple" SecondaryColor="Lime" />-->
2121

2222
<!-- If you would prefer to use your own colors there is an option for that as well -->
23-
<!--<materialDesign:CustomColorTheme BaseTheme="Light" Primary="Aqua" Accent="DarkGreen" />-->
23+
<!--<materialDesign:CustomColorTheme BaseTheme="Light" Primary="Aqua" Secondary="DarkGreen" />-->
2424

2525
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" />
2626

MaterialDesignColors.Wpf/MaterialDesignColor.cs

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -23,24 +23,24 @@ public enum PrimaryColor
2323
BlueGrey = MaterialDesignColor.BlueGrey500,
2424
}
2525

26-
public enum AccentColor
26+
public enum SecondaryColor
2727
{
28-
Red = MaterialDesignColor.RedA700,
29-
Pink = MaterialDesignColor.PinkA700,
30-
Purple = MaterialDesignColor.PurpleA700,
31-
DeepPurple = MaterialDesignColor.DeepPurpleA700,
32-
Indigo = MaterialDesignColor.IndigoA700,
33-
Blue = MaterialDesignColor.BlueA700,
34-
LightBlue = MaterialDesignColor.LightBlueA700,
35-
Cyan = MaterialDesignColor.CyanA700,
36-
Teal = MaterialDesignColor.TealA700,
37-
Green = MaterialDesignColor.GreenA700,
38-
LightGreen = MaterialDesignColor.LightGreenA700,
39-
Lime = MaterialDesignColor.LimeA700,
40-
Yellow = MaterialDesignColor.YellowA700,
41-
Amber = MaterialDesignColor.AmberA700,
42-
Orange = MaterialDesignColor.OrangeA700,
43-
DeepOrange = MaterialDesignColor.DeepOrangeA700
28+
Red = MaterialDesignColor.RedSecondary,
29+
Pink = MaterialDesignColor.PinkSecondary,
30+
Purple = MaterialDesignColor.PurpleSecondary,
31+
DeepPurple = MaterialDesignColor.DeepPurpleSecondary,
32+
Indigo = MaterialDesignColor.IndigoSecondary,
33+
Blue = MaterialDesignColor.BlueSecondary,
34+
LightBlue = MaterialDesignColor.LightBlueSecondary,
35+
Cyan = MaterialDesignColor.CyanSecondary,
36+
Teal = MaterialDesignColor.TealSecondary,
37+
Green = MaterialDesignColor.GreenSecondary,
38+
LightGreen = MaterialDesignColor.LightGreenSecondary,
39+
Lime = MaterialDesignColor.LimeSecondary,
40+
Yellow = MaterialDesignColor.YellowSecondary,
41+
Amber = MaterialDesignColor.AmberSecondary,
42+
Orange = MaterialDesignColor.OrangeSecondary,
43+
DeepOrange = MaterialDesignColor.DeepOrangeSecondary
4444
}
4545

4646
public enum MaterialDesignColor
@@ -320,21 +320,21 @@ public enum MaterialDesignColor
320320
Grey = Grey500,
321321
BlueGrey = BlueGrey500,
322322

323-
RedAccent = RedA700,
324-
PinkAccent = PinkA700,
325-
PurpleAccent = PurpleA700,
326-
DeepPurpleAccent = DeepPurpleA700,
327-
IndigoAccent = IndigoA700,
328-
BlueAccent = BlueA700,
329-
LightBlueAccent = LightBlueA700,
330-
CyanAccent = CyanA700,
331-
TealAccent = TealA700,
332-
GreenAccent = GreenA700,
333-
LightGreenAccent = LightGreenA700,
334-
LimeAccent = LimeA700,
335-
YellowAccent = YellowA700,
336-
AmberAccent = AmberA700,
337-
OrangeAccent = OrangeA700,
338-
DeepOrangeAccent = DeepOrangeA700
323+
RedSecondary = RedA700,
324+
PinkSecondary = PinkA700,
325+
PurpleSecondary = PurpleA700,
326+
DeepPurpleSecondary = DeepPurpleA700,
327+
IndigoSecondary = IndigoA700,
328+
BlueSecondary = BlueA700,
329+
LightBlueSecondary = LightBlueA700,
330+
CyanSecondary = CyanA700,
331+
TealSecondary = TealA700,
332+
GreenSecondary = GreenA700,
333+
LightGreenSecondary = LightGreenA700,
334+
LimeSecondary = LimeA700,
335+
YellowSecondary = YellowA700,
336+
AmberSecondary = AmberA700,
337+
OrangeSecondary = OrangeA700,
338+
DeepOrangeSecondary = DeepOrangeA700
339339
}
340340
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
using System.Windows;
2+
using System.Windows.Media;
3+
using MaterialDesignColors.ColorManipulation;
4+
using MaterialDesignThemes.Wpf;
5+
6+
namespace MaterialDesignThemes.MahApps
7+
{
8+
public class MahAppsCustomColorTheme : CustomColorTheme
9+
{
10+
protected override void SetTheme(ITheme theme, ResourceDictionary resourceDictionary)
11+
{
12+
base.SetTheme(theme, resourceDictionary);
13+
resourceDictionary.SetMahApps(theme, BaseTheme);
14+
IThemeManager themeManager = resourceDictionary.GetThemeManager();
15+
if (themeManager != null)
16+
{
17+
themeManager.ThemeChanged += ThemeManagerOnThemeChanged;
18+
}
19+
}
20+
21+
private void ThemeManagerOnThemeChanged(object sender, ThemeChangedEventArgs e)
22+
{
23+
ResourceDictionary resourceDictionary = e.ResourceDictionary;
24+
25+
ITheme newTheme = e.NewTheme;
26+
27+
var foreground = newTheme.Background.ContrastingForegroundColor();
28+
29+
BaseTheme baseTheme = foreground == Colors.Black ? BaseTheme.Light : BaseTheme.Dark;
30+
resourceDictionary.SetMahApps(newTheme, baseTheme);
31+
}
32+
}
33+
}

MaterialDesignThemes.MahApps/MaterialDesignThemes.MahApps.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@
8080
<ItemGroup>
8181
<Compile Include="FlyoutAssist.cs" />
8282
<Compile Include="MahAppsBundledTheme.cs" />
83+
<Compile Include="MahAppsCustomColorTheme.cs" />
8384
<Compile Include="MaterialDesignAssist.cs" />
8485
<Compile Include="Properties\AssemblyInfo.cs">
8586
<SubType>Code</SubType>

MaterialDesignThemes.Wpf/ThemeMarkupExtension.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,25 +29,25 @@ public class BundledTheme : ThemeMarkupExtension
2929
{
3030
public BaseTheme BaseTheme { get; set; }
3131
public PrimaryColor PrimaryColor { get; set; }
32-
public AccentColor AccentColor { get; set; }
32+
public SecondaryColor SecondaryColor { get; set; }
3333

3434
protected override ITheme GetTheme()
3535
{
3636
return Theme.Create(BaseTheme.GetBaseTheme(),
3737
SwatchHelper.Lookup[(MaterialDesignColor) PrimaryColor],
38-
SwatchHelper.Lookup[(MaterialDesignColor) AccentColor]);
38+
SwatchHelper.Lookup[(MaterialDesignColor) SecondaryColor]);
3939
}
4040
}
4141

4242
public class CustomColorTheme : ThemeMarkupExtension
4343
{
4444
public BaseTheme BaseTheme { get; set; }
4545
public Color Primary { get; set; }
46-
public Color Accent { get; set; }
46+
public Color Secondary { get; set; }
4747

4848
protected override ITheme GetTheme()
4949
{
50-
return Theme.Create(BaseTheme.GetBaseTheme(), Primary, Accent);
50+
return Theme.Create(BaseTheme.GetBaseTheme(), Primary, Secondary);
5151
}
5252
}
5353
}

0 commit comments

Comments
 (0)