예제 #1
0
        private void InitializeTheming()
        {
            try
            {
                ThemeManager.AddTheme(new Uri("pack://application:,,,/InteractiveSeven;component/Theming/CustomAccents/DarkAccent1.xaml"));
                ThemeManager.AddTheme(new Uri("pack://application:,,,/InteractiveSeven;component/Theming/CustomAccents/DarkAccent2.xaml"));
                ThemeManager.AddTheme(new Uri("pack://application:,,,/InteractiveSeven;component/Theming/CustomAccents/LightAccent1.xaml"));
                ThemeManager.AddTheme(new Uri("pack://application:,,,/InteractiveSeven;component/Theming/CustomAccents/LightAccent2.xaml"));

                ThemeManager.IsAutomaticWindowsAppModeSettingSyncEnabled = true;
                ThemeManager.SyncThemeWithWindowsAppModeSetting();

                // create custom accents
                ThemeManagerHelper.CreateTheme("Dark", Colors.Red, "CustomAccentDarkRed");
                ThemeManagerHelper.CreateTheme("Light", Colors.Red, "CustomAccentLightRed");
                ThemeManagerHelper.CreateTheme("Dark", Colors.GreenYellow);
                ThemeManagerHelper.CreateTheme("Light", Colors.GreenYellow);
                ThemeManagerHelper.CreateTheme("Dark", Colors.Indigo);
                ThemeManagerHelper.CreateTheme("Light", Colors.Indigo, changeImmediately: true);

                Theme theme = LoadCurrentTheme();

                ThemeManager.ChangeTheme(Current, theme);

                ThemeManager.IsThemeChanged += ThemeManager_IsThemeChanged;
            }
            catch (Exception themeEx)
            {
                _logger.LogError(themeEx, "Error Initializing Application Theming");
            }
        }
예제 #2
0
 public ActionResult Create(Theme thema, HttpPostedFileBase file)
 {
     thema.Image = new byte[file.ContentLength];
     file.InputStream.Read(thema.Image, 0, file.ContentLength);
     themeManager.AddTheme(thema);
     return(RedirectToAction("Index"));
 }
예제 #3
0
        public static void AddDaxStudioAccentColor(this Application app)
        {
            // Fluent Dark Theme
            var dictGeneric = new ResourceDictionary()
            {
                Source = new Uri("pack://application:,,,/Fluent;component/Themes/Generic.xaml", UriKind.Absolute)
            };

            app.Resources.MergedDictionaries.Add(dictGeneric);

            //var dictDark = new ResourceDictionary()
            //{
            //    Source = new Uri("pack://application:,,,/Fluent;component/Themes/Colors/BaseDark.xaml", UriKind.Absolute)
            //};
            //app.Resources.MergedDictionaries.Add(dictDark);
            //var dictAccent = new ResourceDictionary()
            //{
            //    Source = new Uri("pack://application:,,,/Fluent;component/Themes/Accents/Green.xaml", UriKind.Absolute)
            //};
            //app.Resources.MergedDictionaries.Add(dictAccent);

            // add custom accent and theme resource dictionaries to the ThemeManager

            ThemeManager.AddTheme(new Uri("pack://application:,,,/DaxStudio.UI;component/Theme/Light.DaxStudio.xaml"));
            ThemeManager.AddTheme(new Uri("pack://application:,,,/DaxStudio.UI;component/Theme/Dark.DaxStudio.xaml"));

            // get the current theme from the application
            var theme = ThemeManager.DetectTheme(Application.Current);
        }
예제 #4
0
        /// <summary>Raises the <see cref="E:System.Windows.Application.Startup" /> event.</summary>
        /// <param name="e">A <see cref="T:System.Windows.StartupEventArgs" /> that contains the event data.</param>
        protected override void OnStartup(StartupEventArgs e)
        {
            ThemeManager.AddTheme(new Uri("pack://application:,,,/ResourceLibrary;component/DarkTeal.xaml"));
            var theme = ThemeManager.DetectTheme(Application.Current);

            ThemeManager.ChangeTheme(Application.Current, ThemeManager.GetTheme("Dark.Teal"));
            base.OnStartup(e);;
            Start.Configure();
            Start.Run();
        }
예제 #5
0
        public ChangeThemeView()
        {
            InitializeComponent();

            var customTheme = new CustomTheme();

            ThemeManager.AddTheme("BerryBlue", customTheme);
            ThemeManager.SetTheme(sciChart, "BerryBlue");
            ThemeManager.SetTheme(overview, "BerryBlue");
        }
예제 #6
0
        protected override void OnStartup(StartupEventArgs e)
        {
            // add custom accent and theme resource dictionaries to the ThemeManager
            // you should replace MahAppsMetroThemesSample with your application name
            // and correct place where your custom accent lives
            ThemeManager.AddTheme(new Uri("pack://application:,,,/UI/AppTheme.xaml"));
            ThemeManager.ChangeTheme(this, "CUELegendKeys");

            base.OnStartup(e);
        }
예제 #7
0
        public static void Register()
        {
            ThemeManager.AddTheme("HomaBase", true)

            .AddResource("/App_Themes/HomaBase/CSS/Menu/jquery-ui-1.10.1.custom.min.css", ResourceType.CssFile)
            .AddResource("/App_Themes/HomaBase/Scripts/hoverIntent.js", ResourceType.JSFile)
            .AddResource("/App_Themes/HomaBase/Scripts/superfish.js", ResourceType.JSFile)
            .AddResource("/App_Themes/HomaBase/CSS/Homa-Common.css", ResourceType.CssFile)
            .AddResource("/App_Themes/HomaBase/CSS/Menu/superfish.css", ResourceType.CssFile)
            .AddResource("/App_Themes/HomaBase/CSS/Menu/superfish-vertical.css", ResourceType.CssFile)
            .AddResource("/App_Themes/HomaBase/CSS/Homa-Common-Responsive.css", ResourceType.CssFile);


            ThemeManager.AddTheme("Homa-Advanced")
            .AddResource("/App_Themes/Homa-Silver-RedMenu/CSS/CongressPanel.css", ResourceType.CssFile)
            .AddResource("/App_Themes/Homa-Silver-RedMenu/CSS/Message.css", ResourceType.CssFile)
            .AddResource("/App_Themes/Homa-Advanced/CSS/Homa-Main.css", ResourceType.CssFile)
            .AddResource("/App_Themes/Homa-Advanced/Scripts/Homa-Main.js", ResourceType.JSFile)
            ;

            ThemeManager.AddTheme("Avas")
            .AddResource("/App_Themes/Homa-Silver-RedMenu/CSS/CongressPanel.css", ResourceType.CssFile)
            .AddResource("/App_Themes/Homa-Silver-RedMenu/CSS/Message.css", ResourceType.CssFile)
            .AddResource("/App_Themes/Avas/CSS/navbar.css", ResourceType.CssFile)

            .AddResource("/App_Themes/Avas/Scripts/navbar.js", ResourceType.JSFile)
            .AddResource("/App_Themes/Avas/CSS/materialize.min.css", ResourceType.CssFile)
            .AddResource("/App_Themes/Avas/Scripts/materialize.min.js", ResourceType.JSFile)
            .AddResource("/App_Themes/Avas/CSS/style.css", ResourceType.CssFile)
            .AddResource("/App_Themes/Avas/CSS/Color/White.css", ResourceType.CssFile)
            ;

            ThemeManager.AddTheme("Exhibz")
            .AddResource("/App_Themes/Homa-Silver-RedMenu/CSS/CongressPanel.css", ResourceType.CssFile)
            .AddResource("/App_Themes/Homa-Silver-RedMenu/CSS/Message.css", ResourceType.CssFile)
            .AddResource("/App_Themes/Exhibz/CSS/navbar.css", ResourceType.CssFile)
            .AddResource("/App_Themes/Exhibz/Scripts/navbar.js", ResourceType.JSFile)
            .AddResource("/App_Themes/Exhibz/CSS/materialize.min.css", ResourceType.CssFile)
            .AddResource("/App_Themes/Exhibz/Scripts/materialize.min.js", ResourceType.JSFile)
            .AddResource("/App_Themes/Exhibz/CSS/style.css", ResourceType.CssFile)
            ;

            ThemeManager.AddTheme("Homa-Flat")
            .AddResource("/App_Themes/Homa-Flat/CSS/Homa-Main-Flat.css", ResourceType.CssFile)
            ;
            ThemeManager.AddTheme("Default")
            .AddResource("/App_Themes/Default/CSS/Default.css", ResourceType.CssFile)
            .AddResource("/App_Themes/Default/CSS/CongressPanel.css", ResourceType.CssFile)
            .AddResource("/App_Themes/Default/CSS/Message.css", ResourceType.CssFile)
            .AddResource("/App_Themes/Default/CSS/Green/Homa-Green.css", ResourceType.CssFile)

            ;
        }
예제 #8
0
        /// <summary>
        /// Allows the game to perform any initialization it needs to before starting to run.
        /// This is where it can query for any required services and load any non-graphic
        /// related content.  Calling base.Initialize will enumerate through any components
        /// and initialize them as well.
        /// </summary>
        protected override void Initialize()
        {
            base.Initialize();

            CurrentGameSpeed = GameSpeed.Paused;

            _oldState = Keyboard.GetState();

            _graphics.HardwareModeSwitch        = false;
            _graphics.PreferredBackBufferHeight = 1080; // (int)(GraphicsDevice.DisplayMode.Height * 0.8);
            _graphics.PreferredBackBufferWidth  = 1920; // (int)(GraphicsDevice.DisplayMode.Width * 0.8);
            _graphics.IsFullScreen = false;
            _graphics.ApplyChanges();

            Globals.Settings.GameHeight = _graphics.PreferredBackBufferHeight;
            Globals.Settings.GameWidth  = _graphics.PreferredBackBufferWidth;
            FontManager.InitializeFonts(Content);

            Window.Title = TitleAndVersion;

            //TODO: Load this from file
            Globals.Utils.SetGlobalFontSize();
            Globals.Utils.GenerateDummyTexture(GraphicsDevice);
            IsMouseVisible = true;
            Globals.Settings.MasterVolume = 1.0f;
            Globals.Settings.SoundVolume  = 0.5f;
            Globals.Settings.MusicVolume  = 0.5f;

            _screenManager = ScreenManager.GetInstance();
            _screenManager.Initialize(_graphics);
            _screenManager.AddScreen("splash", new SplashScreen(this));
            _screenManager.AddScreen("mainMenu", new MainMenuScreen(this));
            _screenManager.AddScreen("settingsMenu", new SettingsScreen(this));
            //_screenManager.AddScreen("gameLoading", new GameLoadingScreen(this));
            //_screenManager.AddScreen("gameRunning", new GameRunningScreen(this));
            _screenManager.AddScreen("loadGame", new LoadGameScreen(this));
            _screenManager.AddScreen("gameOver", new GameOverScreen(this));
            _screenManager.ChangeScreen("splash");

            _themeManager = ThemeManager.GetInstance();

            Theme test = new Theme("test", new Color(51, 51, 55), Color.Black * 0.75f,
                                   Color.LightGray, new Color(63, 63, 63), Color.White, new Color(80, 80, 80),
                                   Color.RoyalBlue, Color.Blue, Color.DarkOrange, Color.Green, Color.Gold, Color.Red);

            _themeManager.AddTheme(test);
            _themeManager.ChangeTheme("test");

            Console.WriteLine("init done");

            Console.WriteLine(Companies.Generator.CompanyGenerator.Lengths);
        }
예제 #9
0
        private void ChangeThemeClick(object sender, RoutedEventArgs e)
        {
            var customTheme = new CustomTheme();

            ThemeManager.AddTheme("CT1", customTheme);

            /*
             * System.NullReferenceException HResult = 0x80004003
             *  Message = Object reference not set to an instance of an object.
             *  Source = SciChart.Charting
             *  StackTrace:
             *  at SciChart.Charting.Themes.ThemeColorProvider.wqx[c](String bzw, IDictionary bzx)
             */

            ThemeManager.SetTheme(sciChart, "CT1");
        }
예제 #10
0
        public void CanAddThemeBeforeGetterIsCalled()
        {
            Assert.False(ThemeManager.AddTheme(new Uri("pack://application:,,,/Fluent;component/Themes/Themes/Dark.Cobalt.xaml")));

            var resource = new ResourceDictionary
            {
                {
                    Theme.ThemeNameKey, "Runtime"
                },
                {
                    Theme.ThemeDisplayNameKey, "Runtime"
                }
            };

            Assert.True(ThemeManager.AddTheme(resource));
        }
예제 #11
0
        protected override void OnStartup(StartupEventArgs e)
        {
            // 添加主题
            ThemeManager.AddTheme(new Uri("pack://application:,,,/Themes/MoRPAStudio.xaml"));

            // 设置默认主题或者用户设置的主题
            var theme = SettingsManager.GetUserThemeOrDefault();

            ThemeManager.ChangeTheme(this, theme);

            // 设置语言
            var language = SettingsManager.GetUserLanguageOrDefault();

            Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(language);

            base.OnStartup(e);
        }
예제 #12
0
        public static ResourceDictionary CreateTheme(string baseColorScheme, Color accentBaseColor, string name = null,
                                                     bool changeImmediately = false)
        {
            name ??= $"RuntimeTheme_{baseColorScheme}_{accentBaseColor.ToString().Replace("#", string.Empty)}";

            var generatorParameters  = GetGeneratorParameters();
            var themeTemplateContent = GetThemeTemplateContent();

            var variant     = generatorParameters.BaseColorSchemes.First(x => x.Name == baseColorScheme);
            var colorScheme = new ColorScheme();

            colorScheme.Name = accentBaseColor.ToString().Replace("#", string.Empty);
            var values = colorScheme.Values;

            values.Add("MahApps.Colors.AccentBase", accentBaseColor.ToString());
            values.Add("MahApps.Colors.Accent",
                       Color.FromArgb(204, accentBaseColor.R, accentBaseColor.G, accentBaseColor.B).ToString());
            values.Add("MahApps.Colors.Accent2",
                       Color.FromArgb(153, accentBaseColor.R, accentBaseColor.G, accentBaseColor.B).ToString());
            values.Add("MahApps.Colors.Accent3",
                       Color.FromArgb(102, accentBaseColor.R, accentBaseColor.G, accentBaseColor.B).ToString());
            values.Add("MahApps.Colors.Accent4",
                       Color.FromArgb(51, accentBaseColor.R, accentBaseColor.G, accentBaseColor.B).ToString());

            values.Add("MahApps.Colors.Highlight", accentBaseColor.ToString());
            values.Add("MahApps.Colors.IdealForeground", IdealTextColor(accentBaseColor).ToString());

            var xamlContent = new ColorSchemeGenerator().GenerateColorSchemeFileContent(generatorParameters, variant,
                                                                                        colorScheme, themeTemplateContent, name, name);

            var resourceDictionary = (ResourceDictionary)XamlReader.Parse(xamlContent);

            var newTheme = new Theme(resourceDictionary);

            ThemeManager.AddTheme(newTheme.Resources);

            // Apply theme
            if (changeImmediately)
            {
                ThemeManager.ChangeTheme(Application.Current, newTheme);
            }

            return(resourceDictionary);
        }
예제 #13
0
        protected override void OnStartup(StartupEventArgs e)
        {
            // add custom accent and theme resource dictionaries
            ThemeManager.AddTheme(new Uri("pack://application:,,,/MahAppsMetroThemesSample;component/CustomAccents/Dark.Accent1.xaml"));
            ThemeManager.AddTheme(new Uri("pack://application:,,,/MahAppsMetroThemesSample;component/CustomAccents/Dark.Accent2.xaml"));
            ThemeManager.AddTheme(new Uri("pack://application:,,,/MahAppsMetroThemesSample;component/CustomAccents/Light.Accent1.xaml"));
            ThemeManager.AddTheme(new Uri("pack://application:,,,/MahAppsMetroThemesSample;component/CustomAccents/Light.Accent2.xaml"));

            base.OnStartup(e);

            MahApps.Metro.ThemeManager.IsAutomaticWindowsAppModeSettingSyncEnabled = true;
            MahApps.Metro.ThemeManager.SyncThemeWithWindowsAppModeSetting();

            // create custom accents
            ThemeManagerHelper.CreateTheme("Dark", Colors.Red, "CustomAccentDarkRed");
            ThemeManagerHelper.CreateTheme("Light", Colors.Red, "CustomAccentLightRed");
            ThemeManagerHelper.CreateTheme("Dark", Colors.GreenYellow);
            ThemeManagerHelper.CreateTheme("Light", Colors.GreenYellow);
            ThemeManagerHelper.CreateTheme("Dark", Colors.Indigo);
            ThemeManagerHelper.CreateTheme("Light", Colors.Indigo, changeImmediately: true);
        }
        public static Tuple <string, ResourceDictionary> CreateTheme(string baseColorScheme, Color accentBaseColor, Color highlightColor, string name = null, bool changeImmediately = false)
        {
            name = name ?? GenerateThemeName(baseColorScheme, accentBaseColor, highlightColor);

            var generatorParameters  = GetGeneratorParameters();
            var themeTemplateContent = GetThemeTemplateContent();

            var variant     = generatorParameters.BaseColorSchemes.First(x => x.Name == baseColorScheme);
            var colorScheme = new XamlColorSchemeGenerator.ColorScheme
            {
                Name = accentBaseColor.ToString().Replace("#", string.Empty)
            };

            var values = colorScheme.Values;

            values.Add("Fluent.Ribbon.Colors.AccentBaseColor", accentBaseColor.ToString());
            values.Add("Fluent.Ribbon.Colors.AccentColor80", Color.FromArgb(204, accentBaseColor.R, accentBaseColor.G, accentBaseColor.B).ToString());
            values.Add("Fluent.Ribbon.Colors.AccentColor60", Color.FromArgb(153, accentBaseColor.R, accentBaseColor.G, accentBaseColor.B).ToString());
            values.Add("Fluent.Ribbon.Colors.AccentColor40", Color.FromArgb(102, accentBaseColor.R, accentBaseColor.G, accentBaseColor.B).ToString());
            values.Add("Fluent.Ribbon.Colors.AccentColor20", Color.FromArgb(51, accentBaseColor.R, accentBaseColor.G, accentBaseColor.B).ToString());

            values.Add("Fluent.Ribbon.Colors.HighlightColor", highlightColor.ToString());
            values.Add("Fluent.Ribbon.Colors.IdealForegroundColor", IdealTextColor(accentBaseColor).ToString());

            var xamlContent = new ColorSchemeGenerator().GenerateColorSchemeFileContent(generatorParameters, variant, colorScheme, themeTemplateContent, name, name);

            var resourceDictionary = (ResourceDictionary)XamlReader.Parse(xamlContent);

            var newTheme = new Theme(resourceDictionary);

            ThemeManager.AddTheme(newTheme.Resources);

            // Apply theme
            if (changeImmediately)
            {
                ThemeManager.ChangeTheme(Application.Current, newTheme);
            }

            return(new Tuple <string, ResourceDictionary>(xamlContent, resourceDictionary));
        }
예제 #15
0
        public void NewThemeAddsNewBaseColorAndColorScheme()
        {
            var resource = new ResourceDictionary
            {
                {
                    Theme.ThemeNameKey, "Runtime"
                },
                {
                    Theme.ThemeDisplayNameKey, "Runtime"
                },
                {
                    Theme.ThemeBaseColorSchemeKey, "Foo"
                },
                {
                    Theme.ThemeColorSchemeKey, "Bar"
                },
            };

            Assert.True(ThemeManager.AddTheme(resource));
            Assert.That(ThemeManager.BaseColors, Is.EqualTo(new[] { ThemeManager.BaseColorLight, ThemeManager.BaseColorDark, "Colorful", "Foo" }));
            Assert.That(ThemeManager.ColorSchemes.Select(x => x.Name), Does.Contain("Bar"));
        }
예제 #16
0
        public static void Register()
        {
            ThemeManager.AddTheme("RadynBase", true)
            .AddResource(Application.CurrentApplicationPath + "/App_Themes/RadynBase/Scripts/jquery-1.12.4.min.js", ResourceType.JSFile)
            .AddResource(Application.CurrentApplicationPath + "/Scripts/Radyn/common.js", ResourceType.JSFile)
            .AddResource(Application.CurrentApplicationPath + "/Scripts/Radyn/RadynIIFE.js", ResourceType.JSFile)
            .AddResource(Application.CurrentApplicationPath + "/App_Themes/RadynBase/CSS/jquery-ui.min.css", ResourceType.CssFile)
            .AddResource(Application.CurrentApplicationPath + "/Scripts/jquery-ui.js", ResourceType.JSFile)
            .AddResource(Application.CurrentApplicationPath + "/App_Themes/RadynBase/CSS/font-awesome.min.css", ResourceType.CssFile)
            .AddResource(Application.CurrentApplicationPath + "/App_Themes/RadynBase/Scripts/font-awesome.min.js", ResourceType.JSFile)
            .AddResource(Application.CurrentApplicationPath + "/App_Themes/RadynBase/Scripts/jquery.fancybox.min.js", ResourceType.JSFile)
            .AddResource(Application.CurrentApplicationPath + "/App_Themes/RadynBase/CSS/jquery.fancybox.min.css", ResourceType.CssFile)
            .AddResource(Application.CurrentApplicationPath + "/App_Themes/RadynBase/CSS/bootstrap.min.css", ResourceType.CssFile)
            .AddResource(Application.CurrentApplicationPath + "/App_Themes/RadynBase/Scripts/bootstrap.min.js", ResourceType.JSFile)
            .AddResource(Application.CurrentApplicationPath + "/App_Themes/RadynBase/CSS/RadynNotify.css", ResourceType.CssFile)
            .AddResource(Application.CurrentApplicationPath + "/App_Themes/RadynBase/Scripts/RadynNotify.js", ResourceType.JSFile)
            .AddResource(Application.CurrentApplicationPath + "/App_Themes/RadynBase/CSS/RadynAlert.css", ResourceType.CssFile)
            .AddResource(Application.CurrentApplicationPath + "/App_Themes/RadynBase/Scripts/MenuNav.js", ResourceType.JSFile);

            ThemeManager.AddTheme("Common", true)
            .AddResource(Application.CurrentApplicationPath + "/App_Themes/Common/CSS/materialize.min.css", ResourceType.CssFile)
            .AddResource(Application.CurrentApplicationPath + "/App_Themes/Common/Scripts/materialize.min.js", ResourceType.JSFile)
            .AddResource(Application.CurrentApplicationPath + "/App_Themes/Common/CSS/Style-Common.css", ResourceType.CssFile);
            ThemeManager.AddTheme("MainBase", true)
            .AddResource(Application.CurrentApplicationPath + "/App_Themes/MainBase/CSS/RadynCommon.css", ResourceType.CssFile)
            .AddResource(Application.CurrentApplicationPath + "/App_Themes/MainBase/Radyn-Controlls/Grid/Base/Radyn-Grid-base.css", ResourceType.CssFile)
            .AddResource(Application.CurrentApplicationPath + "/App_Themes/MainBase/Radyn-Controlls/Grid/Base/Radyn-Grid-RTL.css", ResourceType.CssFile)
            .AddResource(Application.CurrentApplicationPath + "/App_Themes/MainBase/Radyn-Controlls/Grid/Theme/Radyn-Grid-Silver.css", ResourceType.CssFile)
            .AddResource(Application.CurrentApplicationPath + "/App_Themes/MainBase/CSS/RDN-Silver.css", ResourceType.CssFile);


            ThemeManager.AddTheme("RadynEditor", true)
            .AddResource(Application.CurrentApplicationPath + "/Scripts/Radyn/BootstrapEditor/Css/summernote.css", ResourceType.CssFile)
            .AddResource(Application.CurrentApplicationPath + "/Scripts/Radyn/BootstrapEditor/js/summernote.js", ResourceType.JSFile)
            .AddResource(Application.CurrentApplicationPath + "/Scripts/Radyn/BootstrapEditor/Css/custome.css", ResourceType.CssFile);
        }
예제 #17
0
        public void HighContrastScenarios()
        {
            var themeManager = new ThemeManager();

            {
                var resource = new ResourceDictionary
                {
                    {
                        Theme.ThemeNameKey, "Theme 1"
                    },
                    {
                        Theme.ThemeDisplayNameKey, "Theme 1"
                    },
                    {
                        Theme.ThemeBaseColorSchemeKey, ThemeManager.BaseColorDark
                    },
                    {
                        Theme.ThemeColorSchemeKey, "Bar"
                    },
                    {
                        Theme.ThemePrimaryAccentColorKey, Colors.Blue
                    },
                    {
                        Theme.ThemeIsHighContrastKey, false
                    }
                };

                var newTheme = new Theme(new LibraryTheme(resource, null));

                themeManager.AddTheme(newTheme);
            }

            {
                var resource = new ResourceDictionary
                {
                    {
                        Theme.ThemeNameKey, "Theme 2"
                    },
                    {
                        Theme.ThemeDisplayNameKey, "Theme 2"
                    },
                    {
                        Theme.ThemeBaseColorSchemeKey, ThemeManager.BaseColorLight
                    },
                    {
                        Theme.ThemeColorSchemeKey, "Bar"
                    },
                    {
                        Theme.ThemePrimaryAccentColorKey, Colors.Blue
                    },
                    {
                        Theme.ThemeIsHighContrastKey, false
                    }
                };

                var newTheme = new Theme(new LibraryTheme(resource, null));

                themeManager.AddTheme(newTheme);
            }

            {
                var resource = new ResourceDictionary
                {
                    {
                        Theme.ThemeNameKey, "Theme 1"
                    },
                    {
                        Theme.ThemeDisplayNameKey, "Theme 1"
                    },
                    {
                        Theme.ThemeBaseColorSchemeKey, ThemeManager.BaseColorDark
                    },
                    {
                        Theme.ThemeColorSchemeKey, "Bar"
                    },
                    {
                        Theme.ThemePrimaryAccentColorKey, Colors.Blue
                    },
                    {
                        Theme.ThemeIsHighContrastKey, true
                    }
                };

                var newTheme = new Theme(new LibraryTheme(resource, null));

                themeManager.AddTheme(newTheme);
            }

            {
                var resource = new ResourceDictionary
                {
                    {
                        Theme.ThemeNameKey, "Theme 2"
                    },
                    {
                        Theme.ThemeDisplayNameKey, "Theme 2"
                    },
                    {
                        Theme.ThemeBaseColorSchemeKey, ThemeManager.BaseColorLight
                    },
                    {
                        Theme.ThemeColorSchemeKey, "Bar"
                    },
                    {
                        Theme.ThemePrimaryAccentColorKey, Colors.Blue
                    },
                    {
                        Theme.ThemeIsHighContrastKey, true
                    }
                };

                var newTheme = new Theme(new LibraryTheme(resource, null));

                themeManager.AddTheme(newTheme);
            }

            {
                var theme = themeManager.GetTheme(ThemeManager.BaseColorDark, "Bar");

                Assert.That(theme, Is.Not.Null);
                Assert.That(theme.IsHighContrast, Is.False);
            }

            {
                var theme = themeManager.GetTheme(ThemeManager.BaseColorDark, "Bar", true);

                Assert.That(theme, Is.Not.Null);
                Assert.That(theme.IsHighContrast, Is.True);

                var inverseTheme = themeManager.GetInverseTheme(theme);

                Assert.That(inverseTheme, Is.Not.Null);
                Assert.That(inverseTheme, Is.Not.EqualTo(theme));
                Assert.That(inverseTheme.IsHighContrast, Is.True);
            }

            {
                var frameworkElement = new FrameworkElement();
                var theme            = themeManager.GetTheme(ThemeManager.BaseColorDark, "Bar", true);
                var changeTheme      = themeManager.ChangeTheme(frameworkElement, theme !);

                Assert.That(changeTheme, Is.EqualTo(theme));

                var changeThemeBaseColor = themeManager.ChangeThemeBaseColor(frameworkElement, ThemeManager.BaseColorLight);

                Assert.That(changeThemeBaseColor, Is.Not.Null);
                Assert.That(changeThemeBaseColor, Is.Not.EqualTo(changeTheme));
                Assert.That(changeThemeBaseColor.IsHighContrast, Is.True);
            }
        }