Skip to content

Commit

Permalink
fix non-legacy backdrop when switching themes (#1094)
Browse files Browse the repository at this point in the history
Co-authored-by: Антонов Семен Викторович <[email protected]>
  • Loading branch information
Muniwedesu and Антонов Семен Викторович authored Jun 2, 2024
1 parent 334ded5 commit 232b9c6
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions src/Wpf.Ui/Appearance/WindowBackgroundManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -91,10 +91,14 @@ WindowBackdropType backdrop
}

// This was required to update the background when moving from a HC theme to light/dark theme. However, this breaks theme proper light/dark theme changing on Windows 10.
// else
// {
// _ = WindowBackdrop.RemoveBackground(window);
// }
// But window backdrop effects are not applied when it has an opaque (or any) background on W11 (so removing this breaks backdrop effects when switching themes), however, for legacy MICA it may not be required
// using existing variable, though the OS build which (officially) supports setting DWM_SYSTEMBACKDROP_TYPE attribute is build 22621
// source: https://learn.microsoft.com/en-us/windows/win32/api/dwmapi/ne-dwmapi-dwm_systembackdrop_type
if (Win32.Utilities.IsOSWindows11Insider1OrNewer && backdrop is not WindowBackdropType.None)
{
_ = WindowBackdrop.RemoveBackground(window);
}

_ = WindowBackdrop.ApplyBackdrop(window, backdrop);
if (applicationTheme is ApplicationTheme.Dark)
{
Expand Down

0 comments on commit 232b9c6

Please sign in to comment.