示例#1
0
        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);
            }
        }
示例#3
0
        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();
        }
示例#5
0
        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);
            }
        }
示例#6
0
        // ====================================================================
        // 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);
            }
        }