public void RestartWithDifferentTheme(WpfThemeInfo wpfThemeInfo) { if (wpfThemeInfo.ResourceUri != null) { Restart($"-theme:{wpfThemeInfo.ResourceUri}"); } else { Restart(); } }
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 }); } } }
public ThemeInfoPair(string name, NativeThemeInfo nativeTheme, WpfThemeInfo wpfTheme) { Name = name; NativeTheme = nativeTheme; WpfTheme = wpfTheme; }