Beispiel #1
0
        /// <summary>
        /// 初始化BackgroundController对象
        /// </summary>
        private BackgroundController()
        {
            UIS = new UISettings();
            UIS.ColorValuesChanged += UIS_ColorValuesChanged;

            if (ApplicationData.Current.LocalSettings.Values["SolidColorType"] is string ColorType)
            {
                SolidColorBackgroundBrush = new SolidColorBrush(ColorType.GetColorFromHexString());
            }
            else
            {
                if (UIS.GetColorValue(UIColorType.Background) == Colors.White)
                {
                    SolidColorBackgroundBrush = new SolidColorBrush(Colors.White);
                }
                else
                {
                    SolidColorBackgroundBrush = new SolidColorBrush("#1E1E1E".GetColorFromHexString());
                }
            }

            if (ApplicationData.Current.LocalSettings.Values["UIDisplayMode"] is int ModeIndex)
            {
                switch (ModeIndex)
                {
                case 0:
                {
                    AcrylicBackgroundBrush = new AcrylicBrush
                    {
                        BackgroundSource = AcrylicBackgroundSource.HostBackdrop,
                        TintColor        = Colors.LightSlateGray,
                        TintOpacity      = 0.4,
                        FallbackColor    = Colors.DimGray
                    };

                    CurrentType = BackgroundBrushType.Acrylic;
                    break;
                }

                case 1:
                {
                    AcrylicBackgroundBrush = new AcrylicBrush
                    {
                        BackgroundSource = AcrylicBackgroundSource.HostBackdrop,
                        TintColor        = Colors.LightSlateGray,
                        TintOpacity      = 0.4,
                        FallbackColor    = Colors.DimGray
                    };

                    CurrentType = BackgroundBrushType.SolidColor;

                    if (SolidColorBackgroundBrush.Color == Colors.White && AppThemeController.Current.Theme == ElementTheme.Dark)
                    {
                        AppThemeController.Current.Theme = ElementTheme.Light;
                    }
                    else if (SolidColorBackgroundBrush.Color == Colors.Black && AppThemeController.Current.Theme == ElementTheme.Light)
                    {
                        AppThemeController.Current.Theme = ElementTheme.Dark;
                    }

                    break;
                }

                default:
                {
                    if (WindowsVersionChecker.IsNewerOrEqual(WindowsVersionChecker.Version.Windows10_1903))
                    {
                        if (double.TryParse(Convert.ToString(ApplicationData.Current.LocalSettings.Values["BackgroundTintOpacity"]), out double TintOpacity))
                        {
                            if (double.TryParse(Convert.ToString(ApplicationData.Current.LocalSettings.Values["BackgroundTintLuminosity"]), out double TintLuminosity))
                            {
                                AcrylicBackgroundBrush = new AcrylicBrush
                                {
                                    BackgroundSource                                                  = AcrylicBackgroundSource.HostBackdrop,
                                    TintColor                                                         = ApplicationData.Current.LocalSettings.Values["AcrylicThemeColor"] is string Color?Color.GetColorFromHexString() : Colors.LightSlateGray,
                                                                                TintOpacity           = 1 - TintOpacity,
                                                                                TintLuminosityOpacity = 1 - TintLuminosity,
                                                                                FallbackColor         = Colors.DimGray
                                };
                            }
                            else
                            {
                                AcrylicBackgroundBrush = new AcrylicBrush
                                {
                                    BackgroundSource                                  = AcrylicBackgroundSource.HostBackdrop,
                                    TintColor                                         = ApplicationData.Current.LocalSettings.Values["AcrylicThemeColor"] is string Color?Color.GetColorFromHexString() : Colors.LightSlateGray,
                                                                        TintOpacity   = 1 - TintOpacity,
                                                                        FallbackColor = Colors.DimGray
                                };
                            }
                        }
                        else
                        {
                            AcrylicBackgroundBrush = new AcrylicBrush
                            {
                                BackgroundSource = AcrylicBackgroundSource.HostBackdrop,
                                TintColor        = Colors.LightSlateGray,
                                TintOpacity      = 0.4,
                                FallbackColor    = Colors.DimGray
                            };
                        }
                    }
                    else
                    {
                        if (double.TryParse(Convert.ToString(ApplicationData.Current.LocalSettings.Values["BackgroundTintOpacity"]), out double TintOpacity))
                        {
                            AcrylicBackgroundBrush = new AcrylicBrush
                            {
                                BackgroundSource                                  = AcrylicBackgroundSource.HostBackdrop,
                                TintColor                                         = ApplicationData.Current.LocalSettings.Values["AcrylicThemeColor"] is string Color?Color.GetColorFromHexString() : Colors.LightSlateGray,
                                                                    TintOpacity   = 1 - TintOpacity,
                                                                    FallbackColor = Colors.DimGray
                            };
                        }
                        else
                        {
                            AcrylicBackgroundBrush = new AcrylicBrush
                            {
                                BackgroundSource = AcrylicBackgroundSource.HostBackdrop,
                                TintColor        = Colors.LightSlateGray,
                                TintOpacity      = 0.4,
                                FallbackColor    = Colors.DimGray
                            };
                        }
                    }

                    if (ApplicationData.Current.LocalSettings.Values["CustomUISubMode"] is string SubMode)
                    {
                        CurrentType = (BackgroundBrushType)Enum.Parse(typeof(BackgroundBrushType), SubMode);
                    }

                    break;
                }
                }
            }
            else
            {
                AcrylicBackgroundBrush = new AcrylicBrush
                {
                    BackgroundSource = AcrylicBackgroundSource.HostBackdrop,
                    TintColor        = Colors.LightSlateGray,
                    TintOpacity      = 0.4,
                    FallbackColor    = Colors.DimGray
                };

                CurrentType = BackgroundBrushType.Acrylic;
            }
        }