Esempio n. 1
0
        private void EnableBlurIfApplicable()
        {
            if ((_viewModel.State == FlyoutViewModel.ViewState.Opening || _viewModel.State == FlyoutViewModel.ViewState.Open) &&
                SystemSettings.IsTransparencyEnabled && !SystemParameters.HighContrast)
            {
                User32.AccentFlags location = User32.AccentFlags.None;

                switch (WindowsTaskbar.Current.Location)
                {
                case WindowsTaskbar.Position.Left:
                    location = User32.AccentFlags.DrawRightBorder | User32.AccentFlags.DrawTopBorder;
                    break;

                case WindowsTaskbar.Position.Right:
                    location = User32.AccentFlags.DrawLeftBorder | User32.AccentFlags.DrawTopBorder;
                    break;

                case WindowsTaskbar.Position.Top:
                    location = User32.AccentFlags.DrawLeftBorder | User32.AccentFlags.DrawBottomBorder;
                    break;

                case WindowsTaskbar.Position.Bottom:
                    location = User32.AccentFlags.DrawTopBorder | User32.AccentFlags.DrawLeftBorder;
                    break;
                }

                AccentPolicyLibrary.EnableAcrylic(this, Themes.Manager.Current.ResolveRef(this, "AcrylicColor_Flyout"), location);
            }
            else
            {
                DisableAcrylic();
            }
        }
Esempio n. 2
0
 public static void EnableAcrylic(Visual target, Color color, User32.AccentFlags flags)
 {
     SetAccentPolicy(HandleFromVisual(target),
                     new User32.AccentPolicy
     {
         AccentFlags   = flags,
         AccentState   = AccentPolicySupportsTintColor ? User32.AccentState.ACCENT_ENABLE_ACRYLICBLURBEHIND : User32.AccentState.ACCENT_ENABLE_BLURBEHIND,
         GradientColor = color.ToABGR(),
     });
 }