How to use Theme Service
This topic explains how to use the ThemeService
for runtime theme switching and persisting user theme preferences.
Step-by-step
Register ThemeService: Add the
ThemeService
to your project's host builder configuration.public partial class App : Application { protected override void OnLaunched(LaunchActivatedEventArgs args) { var builder = this.CreateBuilder(args) .Configure(host => host .UseThemeSwitching() ); } }
Consume ThemeService: Inject the ThemeService into your view models or other services where you need to manipulate the theme.
public class SettingsViewModel { private readonly IThemeService _themeService; public SettingsViewModel(IThemeService themeService) { _themeService = themeService; } public async Task ToggleThemeAsync() { var currentTheme = _themeService.Theme; var newTheme = currentTheme == AppTheme.Dark ? AppTheme.Light : AppTheme.Dark; await _themeService.SetThemeAsync(newTheme); } }