From c0b6591babdbd8cb85de627d00ee568e749da35c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=BAben=20Garrido?= <57329376+RGarrido03@users.noreply.github.com> Date: Sat, 3 Jun 2023 23:05:39 +0100 Subject: [PATCH] Fix always-dark shadow, now based on theme --- .../Param_ProjectName/Helpers/TitleBarHelper.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/code/TemplateStudioForWinUICs/Templates/Proj/Default/Param_ProjectName/Helpers/TitleBarHelper.cs b/code/TemplateStudioForWinUICs/Templates/Proj/Default/Param_ProjectName/Helpers/TitleBarHelper.cs index 31a77f5135..424742af48 100644 --- a/code/TemplateStudioForWinUICs/Templates/Proj/Default/Param_ProjectName/Helpers/TitleBarHelper.cs +++ b/code/TemplateStudioForWinUICs/Templates/Proj/Default/Param_ProjectName/Helpers/TitleBarHelper.cs @@ -22,6 +22,9 @@ internal class TitleBarHelper [DllImport("user32.dll", CharSet = CharSet.Auto)] private static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, IntPtr lParam); + [DllImport("dwmapi.dll")] + private static extern int DwmSetWindowAttribute(IntPtr hwnd, int attr, ref int attrValue, int attrSize); + public static void UpdateTitleBar(ElementTheme theme) { if (App.MainWindow.ExtendsContentIntoTitleBar) @@ -95,6 +98,14 @@ public static void UpdateTitleBar(ElementTheme theme) SendMessage(hwnd, WMACTIVATE, WAACTIVE, IntPtr.Zero); SendMessage(hwnd, WMACTIVATE, WAINACTIVE, IntPtr.Zero); } + + var isDarkModeInt = theme switch + { + ElementTheme.Dark => 1, + ElementTheme.Light => 0, + _ => 0 + }; + DwmSetWindowAttribute(hwnd, DWMWA_USE_IMMERSIVE_DARK_MODE, ref isDarkModeInt, sizeof(int)); } }