Exemple #1
0
#pragma warning disable CA1801 // Review unused parameters
        public BaseColorSchemeSwitcherWithIconViewModel(IServiceLocator serviceLocator, IBaseColorSchemeService baseColorSchemeService)
#pragma warning restore CA1801 // Review unused parameters
        {
            Argument.IsNotNull(() => serviceLocator);
            Argument.IsNotNull(() => baseColorSchemeService);

            _serviceLocator         = serviceLocator;
            _baseColorSchemeService = baseColorSchemeService;

            var baseColorSchemes = new List <BaseColorScheme>();

            foreach (var baseColorSchemeFromService in _baseColorSchemeService.GetAvailableBaseColorSchemes())
            {
                var baseColorScheme = new BaseColorScheme
                {
                    Name     = baseColorSchemeFromService,
                    ImageUri = $"/Orc.Theming;component/Resources/Images/BaseColor_{baseColorSchemeFromService}.png"
                };

                baseColorSchemes.Add(baseColorScheme);
            }

            BaseColorSchemes = baseColorSchemes;

            var selected = _baseColorSchemeService.GetBaseColorScheme() ?? BaseColorSchemes[0].Name;

            SelectedBaseColorScheme = BaseColorSchemes.FirstOrDefault(x => x.Name == selected);
        }
#pragma warning disable CA1801 // Review unused parameters
        public BaseColorSchemeSwitcherViewModel(IBaseColorSchemeService baseColorSchemeService)
#pragma warning restore CA1801 // Review unused parameters
        {
            Argument.IsNotNull(() => baseColorSchemeService);

            _baseColorSchemeService = baseColorSchemeService;

            BaseColorSchemes        = _baseColorSchemeService.GetAvailableBaseColorSchemes();
            SelectedBaseColorScheme = _baseColorSchemeService.GetBaseColorScheme() ?? BaseColorSchemes[0];
        }
        public virtual ThemeInfo GetThemeInfo()
        {
            var accentColor = _accentColorService.GetAccentColor();

            var themeInfo = new ThemeInfo
            {
                BaseColorScheme = _baseColorSchemeService.GetBaseColorScheme(),
                AccentBaseColor = accentColor,
                HighlightColor  = accentColor
            };

            return(themeInfo);
        }
Exemple #4
0
        public ThemeSwitcherViewModel(IAccentColorService accentColorService, IBaseColorSchemeService baseColorSchemeService)
        {
            Argument.IsNotNull(() => accentColorService);
            Argument.IsNotNull(() => baseColorSchemeService);

            _accentColorService     = accentColorService;
            _baseColorSchemeService = baseColorSchemeService;

            AccentColors = typeof(Colors).GetPropertiesEx(true, true)
                           .Where(x => x.PropertyType.IsAssignableFromEx(typeof(Color)))
                           .Select(x => (Color)x.GetValue(null))
                           .ToList();

            BaseColorSchemes        = _baseColorSchemeService.GetAvailableBaseColorSchemes();
            SelectedBaseColorScheme = _baseColorSchemeService.GetBaseColorScheme() ?? BaseColorSchemes[0];
        }
Exemple #5
0
        public virtual void SynchronizeTheme()
        {
            Log.Debug("Synchronizing theme");

            EnsureOrchestraTheme(false);

            var themeGenerator = ControlzEx.Theming.RuntimeThemeGenerator.Current;

            var generatedTheme = themeGenerator.GenerateRuntimeTheme(_baseColorSchemeService.GetBaseColorScheme(), _accentColorService.GetAccentColor());

            if (generatedTheme is null)
            {
                throw Log.ErrorAndCreateException <InvalidOperationException>($"Failed to generate runtime theme");
            }

            ChangeTheme(generatedTheme);
        }
Exemple #6
0
        public virtual void SynchronizeTheme()
        {
            Log.Debug("Synchronizing theme");

            var themeGenerator = RuntimeThemeGenerator.Current;

            themeGenerator.Options.UseHSL = false;

            var generatedTheme = themeGenerator.GenerateRuntimeTheme(_baseColorSchemeService.GetBaseColorScheme(), _accentColorService.GetAccentColor());

            if (generatedTheme is null)
            {
                throw Log.ErrorAndCreateException <InvalidOperationException>("Failed to generate runtime theme");
            }

            ChangeTheme(generatedTheme);
        }
Exemple #7
0
        private void UpdateSource()
        {
            if (_image is null)
            {
                return;
            }

            var finalSource = Source;

            if (finalSource is not null)
            {
                var ready           = false;
                var baseColorScheme = _baseColorSchemeService.GetBaseColorScheme()?.ToLower() ?? string.Empty;

                // Step 1: replace fixed item
                var index = finalSource.IndexOfIgnoreCase(BaseColorScheme);
                if (index >= 0)
                {
                    finalSource = finalSource.Remove(index, BaseColorScheme.Length);
                    finalSource = finalSource.Insert(index, baseColorScheme);

                    ready = true;
                }

                // Step 2: if we haven't replaced, auto replace
                if (!ready)
                {
                    var lastDotIndex = finalSource.LastIndexOf('.');
                    if (lastDotIndex >= 0)
                    {
                        finalSource = finalSource.Insert(lastDotIndex, $".{baseColorScheme}");
                    }
                }
            }

            ImageSource imageSource = null;

            if (finalSource is not null)
            {
                imageSource = new BitmapImage(new Uri(finalSource, UriKind.RelativeOrAbsolute));
            }

            _image.SetCurrentValue(Image.SourceProperty, imageSource);
        }
 private void OnBaseColorSchemeServiceBaseColorSchemeChanged(object sender, EventArgs e)
 {
     SelectedBaseColorScheme = _baseColorSchemeService.GetBaseColorScheme();
 }
Exemple #9
0
        private void OnBaseColorSchemeServiceBaseColorSchemeChanged(object sender, EventArgs e)
        {
            var newlySelected = _baseColorSchemeService.GetBaseColorScheme();

            SelectedBaseColorScheme = BaseColorSchemes.FirstOrDefault(x => x.Name == newlySelected);
        }