Inheritance: INotifyPropertyChanged
Example #1
0
        private VisualTheme BuildTheme(string themeId, string nameResKey, bool lightTheme, Color accentColor)
        {
            var backgroundMicaBrush1 = new SolidColorBrush
            {
                Color   = accentColor,
                Opacity = 0.35
            };

            var backgroundMicaBrush2 = new SolidColorBrush
            {
                Color   = accentColor,
                Opacity = 0.4
            };

            var etheme = (lightTheme) ? ElementTheme.Light : ElementTheme.Dark;

            var descriptionResKey = (lightTheme)
                ? "ThemeGeneralLightDescription"
                : "ThemeGeneralDarkDescription";

            var theme = new VisualTheme
            {
                ThemeId                  = themeId,
                FriendlyName             = _loader.GetString(nameResKey),
                Description              = _loader.GetString(descriptionResKey),
                Theme                    = etheme,
                SolidBackgroundBrush     = new SolidColorBrush(accentColor),
                BackgroundMicaBrush1     = backgroundMicaBrush1,
                BackgroundMicaBrush2     = backgroundMicaBrush2,
                PreviewBrush             = new SolidColorBrush(accentColor),
                BaseThemeBackgroundBrush = etheme == ElementTheme.Dark
                    ? new SolidColorBrush(Color.FromArgb(255, 39, 39, 39))
                    : new SolidColorBrush(Color.FromArgb(255, 249, 249, 249))
            };

            return(theme);
        }
 public ThemeChangedEventArgs(VisualTheme theme, VisualTheme actualTheme)
 {
     VisualTheme = theme;
     ActualTheme = actualTheme;
 }
        private VisualTheme BuildTheme(string themeId, string nameResKey, bool lightTheme, Color accentColor)
        {
            var backgroundAcrylic = new AcrylicBrush
            {
                BackgroundSource = AcrylicBackgroundSource.HostBackdrop,
                FallbackColor    = accentColor,
                TintColor        = accentColor,
                TintOpacity      = _settingsViewModel.BackgroundTintOpacity,
            };

            var backgroundAcrylic2 = new AcrylicBrush
            {
                BackgroundSource = AcrylicBackgroundSource.HostBackdrop,
                FallbackColor    = accentColor,
                TintColor        = accentColor,
                TintOpacity      = (_settingsViewModel.BackgroundTintOpacity + .15) > 1 ? 1 : _settingsViewModel.BackgroundTintOpacity + .15
            };

            var backgroundAcrylicAccent = new AcrylicBrush
            {
                BackgroundSource = AcrylicBackgroundSource.Backdrop,
                FallbackColor    = accentColor,
                TintColor        = accentColor,
                TintOpacity      = (_settingsViewModel.BackgroundTintOpacity + -.25) < 0 ? 0 : _settingsViewModel.BackgroundTintOpacity - .25
            };

            var inAppAcrylic = new AcrylicBrush
            {
                BackgroundSource = AcrylicBackgroundSource.Backdrop,
                FallbackColor    = accentColor,
                TintColor        = accentColor,
                TintOpacity      = (_settingsViewModel.BackgroundTintOpacity + .05) > 1 ? 1 : _settingsViewModel.BackgroundTintOpacity + .05
            };

            var etheme = (lightTheme) ? ElementTheme.Light : ElementTheme.Dark;

            var descriptionResKey = (lightTheme)
                ? "ThemeGeneralLightDescription"
                : "ThemeGeneralDarkDescription";

            var theme = new VisualTheme
            {
                ThemeId                  = themeId,
                FriendlyName             = _loader.GetString(nameResKey),
                Description              = _loader.GetString(descriptionResKey),
                Theme                    = etheme,
                BackgroundAcrylicBrush   = backgroundAcrylic,
                BackgroundAcrylicBrush2  = backgroundAcrylic2,
                BackgroundAcrylicAccent  = backgroundAcrylicAccent,
                InAppAcrylicBrush        = inAppAcrylic,
                SolidBackgroundBrush     = new SolidColorBrush(accentColor),
                PreviewBrush             = new SolidColorBrush(accentColor),
                BaseThemeBackgroundBrush = etheme == ElementTheme.Dark
                    ? new SolidColorBrush(Color.FromArgb(255, 28, 28, 28))
                    : new SolidColorBrush(Colors.White),
            };

            _settingsViewModel.AfterTintOpacityChanged += theme.UpdateTintOpacity;

            return(theme);
        }
Example #4
0
        private void Fill()
        {
            /*Priority Themes*/
            //Default:
            var defPreview = new LinearGradientBrush {
                StartPoint = new Point(0, 0), EndPoint = new Point(1, 1),
            };

            defPreview.GradientStops.Add(new GradientStop {
                Color = VisualTheme.DarkColor, Offset = .5d
            });
            defPreview.GradientStops.Add(new GradientStop {
                Color = VisualTheme.LightColor, Offset = .5d
            });

            var def = new VisualTheme
            {
                ThemeId      = "default",
                Description  = _loader.GetString("ThemeSystemDescription"),
                FriendlyName = _loader.GetString("ThemeSystemName"),
                Theme        = ElementTheme.Default,
                Kind         = VisualThemeKind.System,
                PreviewBrush = defPreview
            };

            _themes.Add(def);
            //Light
            _themes.Add(BuildTheme(LIGHT_KEY, "ThemeLightName", true, VisualTheme.LightColor));
            //Dark
            _themes.Add(BuildTheme(DARK_KEY, "ThemeDarkName", false, VisualTheme.DarkColor));

            //System Accent Color
            _themes.Add(BuildTheme("accent", "ThemeAccentName", false, (Color)Resources["SystemAccentColor"]));

            //Random:
            var rdmPreview = new LinearGradientBrush {
                StartPoint = new Point(0, 0), EndPoint = new Point(1, 1),
            };

            rdmPreview.GradientStops.Add(new GradientStop {
                Color = Colors.Red, Offset = 0d
            });
            rdmPreview.GradientStops.Add(new GradientStop {
                Color = Colors.Yellow, Offset = .25d
            });
            rdmPreview.GradientStops.Add(new GradientStop {
                Color = Colors.LightGreen, Offset = .50d
            });
            rdmPreview.GradientStops.Add(new GradientStop {
                Color = Colors.Teal, Offset = .75d
            });
            rdmPreview.GradientStops.Add(new GradientStop {
                Color = Colors.Violet, Offset = 1d
            });

            var rdm = new VisualTheme
            {
                ThemeId      = "random",
                FriendlyName = _loader.GetString("ThemeRandomName"),
                Description  = _loader.GetString("ThemeRandomDescription"),
                Theme        = ElementTheme.Default,
                Kind         = VisualThemeKind.Random,
                PreviewBrush = rdmPreview
            };

            _themes.Add(rdm);

            //Custom light themes:
            _themes.Add(BuildTheme("chick", "ThemeChickName", true, Color.FromArgb(255, 254, 255, 177)));
            _themes.Add(BuildTheme("yellow", "ThemeYellowName", true, Color.FromArgb(255, 250, 242, 0)));
            _themes.Add(BuildTheme("orange", "ThemeOrangeNAme", true, Color.FromArgb(255, 236, 102, 0)));
            _themes.Add(BuildTheme("lettuce", "ThemeLettuceName", true, Color.FromArgb(255, 177, 234, 175)));
            _themes.Add(BuildTheme("rosegold", "ThemeRoseGoldName", true, Color.FromArgb(255, 253, 220, 215)));
            _themes.Add(BuildTheme("apricot", "ThemeApricotName", true, Color.FromArgb(255, 255, 202, 175)));
            _themes.Add(BuildTheme("mediumpurple", "ThemeMediumPurpleName", true, Color.FromArgb(255, 147, 112, 219)));
            _themes.Add(BuildTheme("sizzlingred", "ThemeSizzlingRedName", true, Color.FromArgb(255, 240, 93, 94)));
            _themes.Add(BuildTheme("persimmon", "ThemePersimmonName", true, Color.FromArgb(255, 244, 93, 1)));
            _themes.Add(BuildTheme("camel", "ThemeCamelName", true, Color.FromArgb(255, 199, 162, 124)));
            _themes.Add(BuildTheme("middleblue", "ThemeMiddleBlueName", true, Color.FromArgb(255, 126, 212, 230)));
            _themes.Add(BuildTheme("bronze", "ThemeBronzeName", true, Color.FromArgb(255, 213, 137, 54)));
            _themes.Add(BuildTheme("mintcream", "ThemeMintCreamName", true, Color.FromArgb(255, 247, 255, 247)));

            //Custom dark themes:
            _themes.Add(BuildTheme("cobalt", "ThemeCobaltName", false, Color.FromArgb(255, 38, 44, 255)));
            _themes.Add(BuildTheme("leaf", "ThemeLeafName", false, Color.FromArgb(255, 56, 111, 54)));
            _themes.Add(BuildTheme("crimson", "ThemeCrimsonName", false, Color.FromArgb(255, 149, 0, 39)));
            _themes.Add(BuildTheme("darksienna", "ThemeDarkSiennaName", false, Color.FromArgb(255, 46, 15, 21)));
            _themes.Add(BuildTheme("iron", "ThemeIronName", false, Color.FromArgb(255, 72, 73, 75)));
            _themes.Add(BuildTheme("blackcoral", "ThemeBlackCoralName", false, Color.FromArgb(255, 62, 92, 118)));
            _themes.Add(BuildTheme("hibiscus", "ThemeHibiscusName", false, Color.FromArgb(255, 169, 56, 86)));
            _themes.Add(BuildTheme("maximumpurple", "ThemeMaximumPurpleName", false, Color.FromArgb(255, 125, 56, 125)));
            _themes.Add(BuildTheme("darkspringgreen", "ThemeDarkSpringGreenName", false, Color.FromArgb(255, 4, 114, 77)));
            _themes.Add(BuildTheme("bluemunsell", "ThemeBlueMunsellName", false, Color.FromArgb(255, 44, 140, 153)));
            _themes.Add(BuildTheme("cedarchest", "ThemeCedarChestName", false, Color.FromArgb(255, 192, 87, 70)));
            _themes.Add(BuildTheme("raisinblack", "ThemeRaisinBlackName", false, Color.FromArgb(255, 33, 39, 56)));
            _themes.Add(BuildTheme("rust", "ThemeRustName", false, Color.FromArgb(255, 164, 66, 0)));
        }
        private void Fill()
        {
            /*Priority Themes*/
            //Default:
            var defPreview = new LinearGradientBrush {
                StartPoint = new Point(0, 0), EndPoint = new Point(1, 1),
            };

            defPreview.GradientStops.Add(new GradientStop {
                Color = VisualTheme.DarkColor, Offset = .5d
            });
            defPreview.GradientStops.Add(new GradientStop {
                Color = VisualTheme.LightColor, Offset = .5d
            });

            var def = new VisualTheme
            {
                ThemeId      = "default",
                Description  = _loader.GetString("ThemeSystemDescription"),
                FriendlyName = _loader.GetString("ThemeSystemName"),
                Theme        = ElementTheme.Default,
                Kind         = VisualThemeKind.System,
                PreviewBrush = defPreview
            };

            _themes.Add(def);
            //Light
            _themes.Add(BuildTheme(LIGHT_KEY, "ThemeLightName", true, VisualTheme.LightColor));
            //Dark
            _themes.Add(BuildTheme(DARK_KEY, "ThemeDarkName", false, VisualTheme.DarkColor));

            //System Accent Color
            _themes.Add(BuildTheme("accent", "ThemeAccentName", false, (Color)Resources["SystemAccentColor"]));

            //Random:
            var rdmPreview = new LinearGradientBrush {
                StartPoint = new Point(0, 0), EndPoint = new Point(1, 1),
            };

            rdmPreview.GradientStops.Add(new GradientStop {
                Color = Colors.Red, Offset = 0d
            });
            rdmPreview.GradientStops.Add(new GradientStop {
                Color = Colors.Yellow, Offset = .25d
            });
            rdmPreview.GradientStops.Add(new GradientStop {
                Color = Colors.LightGreen, Offset = .50d
            });
            rdmPreview.GradientStops.Add(new GradientStop {
                Color = Colors.Teal, Offset = .75d
            });
            rdmPreview.GradientStops.Add(new GradientStop {
                Color = Colors.Violet, Offset = 1d
            });

            var rdm = new VisualTheme
            {
                ThemeId      = "random",
                FriendlyName = _loader.GetString("ThemeRandomName"),
                Description  = _loader.GetString("ThemeRandomDescription"),
                Theme        = ElementTheme.Default,
                Kind         = VisualThemeKind.Random,
                PreviewBrush = rdmPreview
            };

            _themes.Add(rdm);

            //Custom light themes:
            _themes.Add(BuildTheme("chick", "ThemeChickName", true, Color.FromArgb(255, 254, 255, 177)));
            _themes.Add(BuildTheme("lettuce", "ThemeLettuceName", true, Color.FromArgb(255, 177, 234, 175)));
            _themes.Add(BuildTheme("rosegold", "ThemeRoseGoldName", true, Color.FromArgb(255, 253, 220, 215)));
            _themes.Add(BuildTheme("apricot", "ThemeApricotName", true, Color.FromArgb(255, 255, 202, 175)));
            _themes.Add(BuildTheme("mediumpurple", "ThemeMediumPurpleName", true, Color.FromArgb(255, 147, 112, 219)));
            _themes.Add(BuildTheme("sizzlingred", "ThemeSizzlingRedName", true, Color.FromArgb(255, 240, 93, 94)));
            _themes.Add(BuildTheme("persimmon", "ThemePersimmonName", true, Color.FromArgb(255, 244, 93, 1)));

            //Custom dark themes:
            _themes.Add(BuildTheme("cobalt", "ThemeCobaltName", false, Color.FromArgb(255, 0, 71, 171)));
            _themes.Add(BuildTheme("leaf", "ThemeLeafName", false, Color.FromArgb(255, 56, 111, 54)));
            _themes.Add(BuildTheme("crimson", "ThemeCrimsonName", false, Color.FromArgb(255, 149, 0, 39)));
            _themes.Add(BuildTheme("darksienna", "ThemeDarkSiennaName", false, Color.FromArgb(255, 46, 15, 21)));
            _themes.Add(BuildTheme("blackcoral", "ThemeBlackCoralName", false, Color.FromArgb(255, 62, 92, 118)));
            _themes.Add(BuildTheme("maximumpurple", "ThemeMaximumPurpleName", false, Color.FromArgb(255, 125, 56, 125)));
            _themes.Add(BuildTheme("darkspringgreen", "ThemeDarkSpringGreenName", false, Color.FromArgb(255, 4, 114, 77)));
        }