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)); } }