Пример #1
0
 public void RestartWithDifferentTheme(WpfThemeInfo wpfThemeInfo)
 {
     if (wpfThemeInfo.ResourceUri != null)
     {
         Restart($"-theme:{wpfThemeInfo.ResourceUri}");
     }
     else
     {
         Restart();
     }
 }
Пример #2
0
        private void SelectThemes(
            Options opts, ThemeInfoProvider themeInfoProvider,
            out WpfThemeInfo wpfTheme, out NativeThemeInfo nativeTheme)
        {
            wpfTheme    = null;
            nativeTheme = null;

            if (opts.Theme != null)
            {
                string name  = ExpandShortThemeName(opts.Theme);
                var    theme = themeInfoProvider.Themes.FirstOrDefault(x => x.Name == name);
                if (theme != null)
                {
                    wpfTheme    = theme.WpfTheme;
                    nativeTheme = theme.NativeTheme;
                }
            }

            if (opts.WpfTheme != null)
            {
                string name = ExpandShortThemeName(opts.WpfTheme);
                wpfTheme = themeInfoProvider.WpfThemes.FirstOrDefault(x => x.Name == name);
            }
            if (wpfTheme == null && opts.WpfThemeResourceUri != null)
            {
                wpfTheme = themeInfoProvider.WpfThemes.FirstOrDefault(
                    x => x.ResourceUri == opts.WpfThemeResourceUri);

                if (wpfTheme == null)
                {
                    wpfTheme = new WpfThemeInfo(opts.WpfThemeResourceUri.ToString(), opts.WpfThemeResourceUri);
                }
            }

            if (opts.NativeTheme != null)
            {
                string name = ExpandShortThemeName(opts.NativeTheme);
                nativeTheme = themeInfoProvider.NativeThemes.FirstOrDefault(x => x.Name == name);
            }
            if (nativeTheme == null && opts.NativeThemeFile != null)
            {
                nativeTheme = themeInfoProvider.NativeThemes.FirstOrDefault(x => string.Equals(x.Path.FullName,
                                                                                               opts.NativeThemeFile.FullName, StringComparison.OrdinalIgnoreCase));

                if (nativeTheme == null)
                {
                    nativeTheme = NativeThemeInfo.FromPath(
                        opts.NativeThemeFile.FullName,
                        new UxThemeLoadParams {
                        IsHighContrast = opts.IsHighContrast
                    });
                }
            }
        }
Пример #3
0
 public ThemeInfoPair(string name, NativeThemeInfo nativeTheme, WpfThemeInfo wpfTheme)
 {
     Name        = name;
     NativeTheme = nativeTheme;
     WpfTheme    = wpfTheme;
 }