diff --git a/src/AcrylicWindow/AcrylicWindow.cs b/src/AcrylicWindow/AcrylicWindow.cs index 813725f..5cbc44f 100644 --- a/src/AcrylicWindow/AcrylicWindow.cs +++ b/src/AcrylicWindow/AcrylicWindow.cs @@ -27,7 +27,8 @@ public class AcrylicWindow : Window DependencyProperty.Register(nameof(FrameBackground), typeof(WindowFrameBackground), typeof(AcrylicWindow), new FrameworkPropertyMetadata(WindowFrameBackground.Solid, FrameBackgroundChanged)); - private UISettings themeSettings = new UISettings(); + private static readonly UISettings ThemeSettings = new UISettings(); + private bool hookedThemeChanged = false; /// @@ -46,11 +47,23 @@ protected override void OnContentRendered(EventArgs e) if (!this.hookedThemeChanged) { - this.themeSettings.ColorValuesChanged += this.ThemeSettings_ColorValuesChanged; + ThemeSettings.ColorValuesChanged += this.ThemeSettings_ColorValuesChanged; this.hookedThemeChanged = true; } } + /// + protected override void OnClosed(EventArgs e) + { + base.OnClosed(e); + + if (this.hookedThemeChanged) + { + ThemeSettings.ColorValuesChanged -= this.ThemeSettings_ColorValuesChanged; + this.hookedThemeChanged = false; + } + } + private static void FrameBackgroundChanged(DependencyObject target, DependencyPropertyChangedEventArgs e) { if (e.Property.Name != nameof(FrameBackground)) diff --git a/src/MSIExtract/packages.lock.json b/src/MSIExtract/packages.lock.json index 27b1c0c..ad81807 100644 --- a/src/MSIExtract/packages.lock.json +++ b/src/MSIExtract/packages.lock.json @@ -85,8 +85,8 @@ }, "Microsoft.Windows.CsWin32": { "type": "Transitive", - "resolved": "0.3.321", - "contentHash": "ZPEgbqjQiHiers1AW8nZjuikag1Tdmgh0VxowoFfSpU/RUAu9Q8nwbl2ahNo7XAbllPnyG15IKQo3DGfCxrD8A==", + "resolved": "0.3.333", + "contentHash": "UigiQ8BYaIJfon0FZ9rTy9reygbXr4VijncifNe/Az/GSnqd958ptd1/Hp9u9lyYrwI+3/xeIUHgqrLr1o5hQQ==", "dependencies": { "Microsoft.Windows.SDK.Win32Docs": "0.1.42-alpha", "Microsoft.Windows.SDK.Win32Metadata": "71.0.14-preview", @@ -224,7 +224,7 @@ "acrylicwindow": { "type": "Project", "dependencies": { - "Microsoft.Windows.CSWin32": "[0.3.321, )" + "Microsoft.Windows.CSWin32": "[0.3.333, )" } }, "lessio": {