Files
Pilz/Pilz.UI.Telerik/Theming/ThemeHelper.cs
2024-08-28 11:13:06 +02:00

31 lines
1.4 KiB
C#

using Telerik.WinControls;
namespace Pilz.UI.Telerik.Theming;
public static class ThemeHelper
{
public static void ApplyApplicationTheme(ApplicationTheme theme, Func<RadThemeComponentBase> getLightTheme, Func<RadThemeComponentBase> getDarkTheme)
{
ApplyApplicationTheme(theme, getLightTheme, getDarkTheme, getDarkTheme);
}
public static void ApplyApplicationTheme(ApplicationTheme theme, Func<RadThemeComponentBase> getLightTheme, Func<RadThemeComponentBase> getDarkTheme, Func<RadThemeComponentBase> getGrayTheme)
{
ThemeResolutionService.ApplicationThemeName = GetThemeName(theme, getLightTheme, getDarkTheme, getGrayTheme).ThemeName;
}
public static RadThemeComponentBase GetThemeName(ApplicationTheme theme, Func<RadThemeComponentBase> getLightTheme, Func<RadThemeComponentBase> getDarkTheme, Func<RadThemeComponentBase> getGrayTheme)
{
RadThemeComponentBase? themeToUse;
if (theme == ApplicationTheme.Light || theme == ApplicationTheme.Auto && WindowsSettings.AppsUseLightTheme)
themeToUse = getLightTheme();
else if (theme == ApplicationTheme.Dark || theme == ApplicationTheme.Auto && !WindowsSettings.AppsUseLightTheme)
themeToUse = getDarkTheme();
else /*if (CoreSettings.AppTheme == ApplicationTheme.Gray)*/
themeToUse = getGrayTheme();
return themeToUse;
}
}