From 2dcbe7f5d8fd287bf7641a407a7aa00d6559dae4 Mon Sep 17 00:00:00 2001 From: Jack251970 <1160210343@qq.com> Date: Sun, 16 Mar 2025 14:46:39 +0800 Subject: [PATCH] Remove old blur handling codes --- Flow.Launcher.Infrastructure/Win32Helper.cs | 122 ++------------------ 1 file changed, 7 insertions(+), 115 deletions(-) diff --git a/Flow.Launcher.Infrastructure/Win32Helper.cs b/Flow.Launcher.Infrastructure/Win32Helper.cs index 7f0c9a287..5b7e0784c 100644 --- a/Flow.Launcher.Infrastructure/Win32Helper.cs +++ b/Flow.Launcher.Infrastructure/Win32Helper.cs @@ -12,6 +12,13 @@ namespace Flow.Launcher.Infrastructure { #region Blur Handling + public static bool IsBackdropSupported() + { + // Windows 11 (22000) 이상에서만 Mica 및 Acrylic 효과 지원 + return RuntimeInformation.IsOSPlatform(OSPlatform.Windows) && + Environment.OSVersion.Version.Build >= 22000; + } + public static unsafe bool DWMSetBackdropForWindow(Window window, BackdropTypes backdrop) { var windowHelper = new WindowInteropHelper(window); @@ -74,120 +81,5 @@ namespace Flow.Launcher.Infrastructure } #endregion - - #region Backdrop - - public static bool IsBackdropSupported() - { - // Windows 11 (22000) 이상에서만 Mica 및 Acrylic 효과 지원 - return RuntimeInformation.IsOSPlatform(OSPlatform.Windows) && - Environment.OSVersion.Version.Build >= 22000; - } - - public static unsafe bool SetMicaForWindow(Window window, bool enableMica) - { - var windowHelper = new WindowInteropHelper(window); - windowHelper.EnsureHandle(); - - DWM_SYSTEMBACKDROP_TYPE backdropType = enableMica ? DWM_SYSTEMBACKDROP_TYPE.DWMSBT_MAINWINDOW : DWM_SYSTEMBACKDROP_TYPE.DWMSBT_NONE; - return PInvoke.DwmSetWindowAttribute( - new(windowHelper.Handle), - DWMWINDOWATTRIBUTE.DWMWA_SYSTEMBACKDROP_TYPE, - &backdropType, - (uint)Marshal.SizeOf()).Succeeded; - } - - #endregion - - #region Blur Handling - - /* - Found on https://github.com/riverar/sample-win10-aeroglass - */ - - private enum AccentState - { - ACCENT_DISABLED = 0, - ACCENT_ENABLE_GRADIENT = 1, - ACCENT_ENABLE_TRANSPARENTGRADIENT = 2, - ACCENT_ENABLE_BLURBEHIND = 3, - ACCENT_INVALID_STATE = 4 - } - - [StructLayout(LayoutKind.Sequential)] - private struct AccentPolicy - { - public AccentState AccentState; - public int AccentFlags; - public int GradientColor; - public int AnimationId; - } - - [StructLayout(LayoutKind.Sequential)] - private struct WindowCompositionAttributeData - { - public WindowCompositionAttribute Attribute; - public IntPtr Data; - public int SizeOfData; - } - - private enum WindowCompositionAttribute - { - WCA_ACCENT_POLICY = 19 - } - - [DllImport("user32.dll")] - private static extern int SetWindowCompositionAttribute(IntPtr hwnd, ref WindowCompositionAttributeData data); - - /// - /// Checks if the blur theme is enabled - /// - public static bool IsBlurTheme() - { - if (Environment.OSVersion.Version >= new Version(6, 2)) - { - var resource = Application.Current.TryFindResource("ThemeBlurEnabled"); - - if (resource is bool b) - return b; - - return false; - } - - return false; - } - - /// - /// Sets the blur for a window via SetWindowCompositionAttribute - /// - public static void SetBlurForWindow(Window w, bool blur) - { - SetWindowAccent(w, blur ? AccentState.ACCENT_ENABLE_BLURBEHIND : AccentState.ACCENT_DISABLED); - } - - private static void SetWindowAccent(Window w, AccentState state) - { - var windowHelper = new WindowInteropHelper(w); - - windowHelper.EnsureHandle(); - - var accent = new AccentPolicy { AccentState = state }; - var accentStructSize = Marshal.SizeOf(accent); - - var accentPtr = Marshal.AllocHGlobal(accentStructSize); - Marshal.StructureToPtr(accent, accentPtr, false); - - var data = new WindowCompositionAttributeData - { - Attribute = WindowCompositionAttribute.WCA_ACCENT_POLICY, - SizeOfData = accentStructSize, - Data = accentPtr - }; - - SetWindowCompositionAttribute(windowHelper.Handle, ref data); - - Marshal.FreeHGlobal(accentPtr); - } - #endregion } }