@@ -24,7 +24,7 @@ public class Theme
2424 {
2525 #region Properties & Fields
2626
27- public bool BlurEnabled { get ; set ; }
27+ public bool BlurEnabled { get ; private set ; }
2828
2929 private const string ThemeMetadataNamePrefix = "Name:" ;
3030 private const string ThemeMetadataIsDarkPrefix = "IsDark:" ;
@@ -42,6 +42,8 @@ public class Theme
4242 private static string DirectoryPath => Path . Combine ( Constant . ProgramDirectory , Folder ) ;
4343 private static string UserDirectoryPath => Path . Combine ( DataLocation . DataDirectory ( ) , Folder ) ;
4444
45+ private Thickness _themeResizeBorderThickness ;
46+
4547 #endregion
4648
4749 #region Constructor
@@ -463,7 +465,7 @@ public void AddDropShadowEffectToCurrentTheme()
463465
464466 var effectSetter = new Setter
465467 {
466- Property = Border . EffectProperty ,
468+ Property = UIElement . EffectProperty ,
467469 Value = new DropShadowEffect
468470 {
469471 Opacity = 0.3 ,
@@ -473,12 +475,12 @@ public void AddDropShadowEffectToCurrentTheme()
473475 }
474476 } ;
475477
476- if ( windowBorderStyle . Setters . FirstOrDefault ( setterBase => setterBase is Setter setter && setter . Property == Border . MarginProperty ) is not Setter marginSetter )
478+ if ( windowBorderStyle . Setters . FirstOrDefault ( setterBase => setterBase is Setter setter && setter . Property == FrameworkElement . MarginProperty ) is not Setter marginSetter )
477479 {
478480 var margin = new Thickness ( ShadowExtraMargin , 12 , ShadowExtraMargin , ShadowExtraMargin ) ;
479481 marginSetter = new Setter ( )
480482 {
481- Property = Border . MarginProperty ,
483+ Property = FrameworkElement . MarginProperty ,
482484 Value = margin ,
483485 } ;
484486 windowBorderStyle . Setters . Add ( marginSetter ) ;
@@ -508,12 +510,12 @@ public void RemoveDropShadowEffectFromCurrentTheme()
508510 var dict = GetCurrentResourceDictionary ( ) ;
509511 var windowBorderStyle = dict [ "WindowBorderStyle" ] as Style ;
510512
511- if ( windowBorderStyle . Setters . FirstOrDefault ( setterBase => setterBase is Setter setter && setter . Property == Border . EffectProperty ) is Setter effectSetter )
513+ if ( windowBorderStyle . Setters . FirstOrDefault ( setterBase => setterBase is Setter setter && setter . Property == UIElement . EffectProperty ) is Setter effectSetter )
512514 {
513515 windowBorderStyle . Setters . Remove ( effectSetter ) ;
514516 }
515517
516- if ( windowBorderStyle . Setters . FirstOrDefault ( setterBase => setterBase is Setter setter && setter . Property == Border . MarginProperty ) is Setter marginSetter )
518+ if ( windowBorderStyle . Setters . FirstOrDefault ( setterBase => setterBase is Setter setter && setter . Property == FrameworkElement . MarginProperty ) is Setter marginSetter )
517519 {
518520 var currentMargin = ( Thickness ) marginSetter . Value ;
519521 var newMargin = new Thickness (
@@ -529,28 +531,41 @@ public void RemoveDropShadowEffectFromCurrentTheme()
529531 UpdateResourceDictionary ( dict ) ;
530532 }
531533
534+ public void SetResizeBorderThickness ( WindowChrome windowChrome , bool fixedWindowSize )
535+ {
536+ if ( fixedWindowSize )
537+ {
538+ windowChrome . ResizeBorderThickness = new Thickness ( 0 ) ;
539+ }
540+ else
541+ {
542+ windowChrome . ResizeBorderThickness = _themeResizeBorderThickness ;
543+ }
544+ }
545+
532546 // because adding drop shadow effect will change the margin of the window,
533547 // we need to update the window chrome thickness to correct set the resize border
534- private static void SetResizeBoarderThickness ( Thickness ? effectMargin )
548+ private void SetResizeBoarderThickness ( Thickness ? effectMargin )
535549 {
536550 var window = Application . Current . MainWindow ;
537551 if ( WindowChrome . GetWindowChrome ( window ) is WindowChrome windowChrome )
538552 {
539- Thickness thickness ;
553+ // Save the theme resize border thickness so that we can restore it if we change ResizeWindow setting
540554 if ( effectMargin == null )
541555 {
542- thickness = SystemParameters . WindowResizeBorderThickness ;
556+ _themeResizeBorderThickness = SystemParameters . WindowResizeBorderThickness ;
543557 }
544558 else
545559 {
546- thickness = new Thickness (
560+ _themeResizeBorderThickness = new Thickness (
547561 effectMargin . Value . Left + SystemParameters . WindowResizeBorderThickness . Left ,
548562 effectMargin . Value . Top + SystemParameters . WindowResizeBorderThickness . Top ,
549563 effectMargin . Value . Right + SystemParameters . WindowResizeBorderThickness . Right ,
550564 effectMargin . Value . Bottom + SystemParameters . WindowResizeBorderThickness . Bottom ) ;
551565 }
552566
553- windowChrome . ResizeBorderThickness = thickness ;
567+ // Apply the resize border thickness to the window chrome
568+ SetResizeBorderThickness ( windowChrome , _settings . KeepMaxResults ) ;
554569 }
555570 }
556571
@@ -582,7 +597,7 @@ await Application.Current.Dispatcher.InvokeAsync(() =>
582597 {
583598 AutoDropShadow ( useDropShadowEffect ) ;
584599 }
585- } , DispatcherPriority . Normal ) ;
600+ } , DispatcherPriority . Render ) ;
586601 }
587602
588603 /// <summary>
@@ -596,7 +611,7 @@ await Application.Current.Dispatcher.InvokeAsync(() =>
596611 var ( backdropType , _) = GetActualValue ( ) ;
597612
598613 SetBlurForWindow ( GetCurrentTheme ( ) , backdropType ) ;
599- } , DispatcherPriority . Normal ) ;
614+ } , DispatcherPriority . Render ) ;
600615 }
601616
602617 /// <summary>
0 commit comments