public ThemeConfigViewModel(IThemeSettingsProvider settings, IThemeManager themeManager, IMainWindowHolder mainWindowHolder) { var currentSettings = settings.GetSettings(); name = CurrentThemeName = themeManager.CurrentTheme; themes = themeManager.Themes.ToList(); useCustomScaling = currentSettings.UseCustomScaling; scalingValue = Math.Clamp(currentSettings.CustomScaling, 0.5, 4); RecommendedScalingPercentage = (int)(((mainWindowHolder.Window?.Screens?.Primary ?? mainWindowHolder.Window?.Screens?.All?.FirstOrDefault())?.PixelDensity ?? 1) * 100); AllowCustomScaling = RuntimeInformation.IsOSPlatform(OSPlatform.Windows); Save = new DelegateCommand(() => { themeManager.SetTheme(ThemeName); themeManager.UpdateCustomScaling(useCustomScaling ? ScalingValue : null); settings.UpdateSettings(ThemeName, UseCustomScaling ? Math.Clamp(ScalingValue, 0.5, 4) : null); IsModified = false; }); }