using Telerik.WinControls; namespace Pilz.UI.Telerik.Theming; public static class ThemeHelper { public static void ApplyApplicationTheme(ApplicationTheme theme, Func getLightTheme, Func getDarkTheme) { ApplyApplicationTheme(theme, getLightTheme, getDarkTheme, getDarkTheme); } public static void ApplyApplicationTheme(ApplicationTheme theme, Func getLightTheme, Func getDarkTheme, Func getGrayTheme) { ThemeResolutionService.ApplicationThemeName = GetThemeName(theme, getLightTheme, getDarkTheme, getGrayTheme).ThemeName; } public static RadThemeComponentBase GetThemeName(ApplicationTheme theme, Func getLightTheme, Func getDarkTheme, Func 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; } }