CSGO-Projects/DamagePrinter/DamagePrinterGUI/Themes/ThemesController.cs
2022-05-24 23:41:18 +02:00

46 lines
1.4 KiB
C#

using System;
using System.Windows;
namespace REghZyFramework.Themes
{
public static class ThemesController
{
public enum ThemeTypes
{
Light, ColourfulLight,
Dark, ColourfulDark
}
public static ThemeTypes CurrentTheme { get; set; }
private static ResourceDictionary ThemeDictionary
{
get { return Application.Current.Resources.MergedDictionaries[0]; }
set { Application.Current.Resources.MergedDictionaries[0] = value; }
}
private static void ChangeTheme(Uri uri)
{
ThemeDictionary = new ResourceDictionary() { Source = uri };
}
public static void SetTheme(ThemeTypes theme)
{
string themeName = null;
CurrentTheme = theme;
switch (theme)
{
case ThemeTypes.Dark: themeName = "DarkTheme"; break;
case ThemeTypes.Light: themeName = "LightTheme"; break;
case ThemeTypes.ColourfulDark: themeName = "ColourfulDarkTheme"; break;
case ThemeTypes.ColourfulLight: themeName = "ColourfulLightTheme"; break;
}
try
{
if (!string.IsNullOrEmpty(themeName))
ChangeTheme(new Uri($"Themes/{themeName}.xaml", UriKind.Relative));
}
catch { }
}
}
}