31 lines
1.4 KiB
C#
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;
|
|
}
|
|
}
|