add ThemeHelper
This commit is contained in:
9
Pilz.UI.Telerik/Theming/ApplicationTheme.cs
Normal file
9
Pilz.UI.Telerik/Theming/ApplicationTheme.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
namespace Pilz.UI.Telerik.Theming;
|
||||
|
||||
public enum ApplicationTheme
|
||||
{
|
||||
Auto,
|
||||
Light,
|
||||
Dark,
|
||||
Gray,
|
||||
}
|
||||
30
Pilz.UI.Telerik/Theming/ThemeHelper.cs
Normal file
30
Pilz.UI.Telerik/Theming/ThemeHelper.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user