using WPFluent.Appearance; namespace WPFluent; /// /// Lets you set the app theme. /// public partial class ThemeService : IThemeService { /// public virtual SystemTheme GetNativeSystemTheme() => ApplicationThemeManager.GetSystemTheme(); /// public virtual ApplicationTheme GetSystemTheme() { SystemTheme systemTheme = ApplicationThemeManager.GetSystemTheme(); return systemTheme switch { SystemTheme.Light => ApplicationTheme.Light, SystemTheme.Dark => ApplicationTheme.Dark, SystemTheme.Glow => ApplicationTheme.Dark, SystemTheme.CapturedMotion => ApplicationTheme.Dark, SystemTheme.Sunrise => ApplicationTheme.Light, SystemTheme.Flow => ApplicationTheme.Light, SystemTheme.HCBlack => ApplicationTheme.HighContrast, SystemTheme.HC1 => ApplicationTheme.HighContrast, SystemTheme.HC2 => ApplicationTheme.HighContrast, SystemTheme.HCWhite => ApplicationTheme.HighContrast, _ => ApplicationTheme.Unknown, }; } /// public virtual ApplicationTheme GetTheme() => ApplicationThemeManager.GetAppTheme(); /// public bool SetAccent(Color accentColor) { ApplicationAccentColorManager.Apply(accentColor); return true; } /// public bool SetAccent(SolidColorBrush accentSolidBrush) { Color color = accentSolidBrush.Color; color.A = (byte)Math.Round(accentSolidBrush.Opacity * byte.MaxValue); ApplicationAccentColorManager.Apply(color); return true; } /// public bool SetSystemAccent() { ApplicationAccentColorManager.ApplySystemAccent(); return true; } /// public virtual bool SetTheme(ApplicationTheme applicationTheme) { if(ApplicationThemeManager.GetAppTheme() == applicationTheme) { return false; } ApplicationThemeManager.Apply(applicationTheme); return true; } }