private async void Application_Startup(object sender, StartupEventArgs e) { await _host.StartAsync(); // if the app lost this data for some reason // or the app runs for the first time // it will load the default theme in App.xaml file if (!string.IsNullOrEmpty(WPF.Properties.Settings.Default.PrimaryColor) && !string.IsNullOrEmpty(WPF.Properties.Settings.Default.AccentColor)) { try { IEnumerable <Swatch> Swatches = new SwatchesProvider().Swatches; PaletteSelectorViewModel.ApplyPrimary(Swatches.FirstOrDefault(x => x.Name == WPF.Properties.Settings.Default.PrimaryColor)); PaletteSelectorViewModel.ApplyAccent(Swatches.FirstOrDefault(x => x.Name == WPF.Properties.Settings.Default.AccentColor)); PaletteSelectorViewModel.ApplyBase(WPF.Properties.Settings.Default.IsDarkTheme); } catch (Exception ex) { Console.WriteLine(ex); } } _host.Services .GetRequiredService <IWindowManager>() .ShowWindow <LoginViewModel>(); }
private static void SetColors(string primaryColor, string accentColor, bool?darkMode) { var swatches = new SwatchesProvider().Swatches; var paletteHelper = new PaletteHelper(); if (primaryColor != null) { var primary = swatches.FirstOrDefault(s => s.Name == primaryColor); if (primary != null) { paletteHelper.ReplacePrimaryColor(primary); } } if (accentColor != null) { var accent = swatches.FirstOrDefault(s => s.Name == accentColor); if (accent != null) { paletteHelper.ReplaceAccentColor(accent); } } if (darkMode.HasValue) { paletteHelper.SetLightDark(darkMode.Value); } }
private void MainWindow_Loaded(object sender, RoutedEventArgs e) { try { var machineInfo = MachineLogic.localMachine(); var netmachineInfo = UserLogic.AutoLogin(machineInfo.token); if (netmachineInfo == null) { NavigationHelper.NavigatedToView("用户登录"); } if (netmachineInfo.machineId != machineInfo.machineId) { NavigationHelper.NavigatedToView("用户登录"); } machineInfo.machineName = netmachineInfo.machineName; machineInfo.machinepwd = netmachineInfo.machinePwd; MachineLogic.RecordMachineInfo(machineInfo); NavigationHelper.NavigatedToView("主界面"); } catch (Exception) { NavigationHelper.NavigatedToView("用户登录"); } var Swatches = new SwatchesProvider().Swatches; var swatch = Swatches.FirstOrDefault(o => o.Name == "blue"); ModifyTheme(theme => { theme.SetBaseTheme(Theme.Light); }); ModifyTheme(theme => theme.SetPrimaryColor(swatch.ExemplarHue.Color)); ModifyTheme(theme => theme.SetSecondaryColor(swatch.AccentExemplarHue.Color)); }
private void ChangePalete(string color) { helper = new PaletteHelper(); var swatches = new SwatchesProvider().Swatches; helper.ReplacePrimaryColor(swatches.FirstOrDefault(s => s.Name == color.ToLower())); Settings.Default.PaletteColor = color; Settings.Default.Save(); }
private void SetColors(Configuration configuration) { var swatches = new SwatchesProvider().Swatches; var paletteHelper = new PaletteHelper(); var primary = swatches.FirstOrDefault(s => s.Name == configuration.PrimaryColor); var accent = swatches.FirstOrDefault(s => s.Name == configuration.AccentColor); if (primary != null) { paletteHelper.ReplacePrimaryColor(primary); } if (accent != null) { paletteHelper.ReplaceAccentColor(accent); } if (configuration.DarkMode) { paletteHelper.SetLightDark(true); } }
// ==================================================================== // public 関数 // ==================================================================== // -------------------------------------------------------------------- // 初期化 // -------------------------------------------------------------------- public override void Initialize() { base.Initialize(); try { // マテリアルデザインの外観を変更 IEnumerable <Swatch> swatches = new SwatchesProvider().Swatches; PaletteHelper paletteHelper = new(); ITheme theme = paletteHelper.GetTheme(); Swatch?orangeSwatch = swatches.FirstOrDefault(x => x.Name == "orange"); if (orangeSwatch != null) { theme.SetPrimaryColor(orangeSwatch.ExemplarHue.Color); } Swatch?limeSwatch = swatches.FirstOrDefault(x => x.Name == "yellow"); if (limeSwatch != null) { theme.SetSecondaryColor(limeSwatch.ExemplarHue.Color); } paletteHelper.SetTheme(theme); // テンポラリフォルダー準備 Common.InitializeTempFolder(); // 環境 YlModel.Instance.EnvModel.YlSettings.Load(); YlModel.Instance.EnvModel.YlSettings.SetLogWriter(YlModel.Instance.EnvModel.LogWriter); YlModel.Instance.EnvModel.TagSettings.Load(); YlModel.Instance.EnvModel.TagSettings.SetLogWriter(YlModel.Instance.EnvModel.LogWriter); DbCommon.PrepareDatabases(); YlModel.Instance.EnvModel.StartAllCores(); // メインウィンドウ表示 _mainWindowViewModel = new MainWindowViewModel(this); if (YlModel.Instance.EnvModel.YlSettings.DesktopBounds.Width == 0.0 || YlModel.Instance.EnvModel.YlSettings.DesktopBounds.Height == 0.0) { // デフォルトウィンドウサイズ } else { // 前回のウィンドウサイズ Rect adjustedRect = CommonWindows.AdjustWindowRect(YlModel.Instance.EnvModel.YlSettings.DesktopBounds); _mainWindowViewModel.Left = adjustedRect.Left; _mainWindowViewModel.Top = adjustedRect.Top; _mainWindowViewModel.Width = adjustedRect.Width; _mainWindowViewModel.Height = adjustedRect.Height; } Messenger.Raise(new TransitionMessage(_mainWindowViewModel, YlConstants.MESSAGE_KEY_OPEN_MAIN_WINDOW)); } catch (Exception excep) { // YlModel 未生成の可能性があるためまずはメッセージ表示のみ MessageBox.Show("スプラッシュウィンドウ初期化時エラー:\n" + excep.Message + "\n" + excep.StackTrace, "エラー", MessageBoxButton.OK, MessageBoxImage.Error); // 可能であればログする。YlModel 生成中に例外が発生する可能性があるが、それについては集約エラーハンドラーに任せる YlModel.Instance.EnvModel.LogWriter.LogMessage(TraceEventType.Error, "スプラッシュウィンドウ初期化時エラー:\n" + excep.Message); YlModel.Instance.EnvModel.LogWriter.LogMessage(Common.TRACE_EVENT_TYPE_STATUS, " スタックトレース:\n" + excep.StackTrace); // 継続できないのでアプリを終了する Environment.Exit(1); } }