コード例 #1
0
        public ThemeConfigViewModel(IThemeSettingsProvider s, IThemeManager themeManager)
        {
            this.themeManager = themeManager;
            SaveAction        = Save;

            _name   = themeManager.CurrentTheme;
            _themes = themeManager.Themes.ToList();

            settings = s;
        }
コード例 #2
0
        public ThemeConfigViewModel(IThemeSettingsProvider settings, IThemeManager themeManager)
        {
            name   = themeManager.CurrentTheme;
            themes = themeManager.Themes.ToList();

            Save = new DelegateCommand(() =>
            {
                themeManager.SetTheme(ThemeName);
                settings.UpdateSettings(ThemeName);
                IsModified = false;
            });
        }
コード例 #3
0
        public ThemeManager(IThemeSettingsProvider themeSettings)
        {
            var currentThemeName = themeSettings.GetSettings().Name;

            var theme = new Theme(currentThemeName);

            if (!IsValidTheme(theme))
            {
                theme = _defaultTheme;
            }

            SetTheme(theme);
        }
コード例 #4
0
        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;
            });
        }
 public ThemeChangerConfiguration(IThemeSettingsProvider settings, IThemeManager themeManager)
 {
     themeSettings     = settings;
     this.themeManager = themeManager;
 }