diff --git a/src/Files.App.Controls/ThemedIcon/ThemedIcon.Properties.cs b/src/Files.App.Controls/ThemedIcon/ThemedIcon.Properties.cs index c385aab30c6c..263a8545e5cf 100644 --- a/src/Files.App.Controls/ThemedIcon/ThemedIcon.Properties.cs +++ b/src/Files.App.Controls/ThemedIcon/ThemedIcon.Properties.cs @@ -97,5 +97,22 @@ partial void OnToggleBehaviorChanged(ToggleBehaviors newValue) { UpdateVisualStates(); } + + private void OnStylePropertyChanged(DependencyObject sender, DependencyProperty dp) + { + if (dp != StyleProperty) + return; + + DispatcherQueue.TryEnqueue(() => + { + GetTemplateParts(); + OnFilledIconChanged(); + OnOutlineIconChanged(); + OnLayeredIconChanged(); + OnIconTypeChanged(); + OnIconColorTypeChanged(); + OnIconSizeChanged(); + }); + } } } diff --git a/src/Files.App.Controls/ThemedIcon/ThemedIcon.cs b/src/Files.App.Controls/ThemedIcon/ThemedIcon.cs index c7cfdde8932f..17f1f4a2b75b 100644 --- a/src/Files.App.Controls/ThemedIcon/ThemedIcon.cs +++ b/src/Files.App.Controls/ThemedIcon/ThemedIcon.cs @@ -17,9 +17,24 @@ public partial class ThemedIcon : Control private Viewbox? _layeredViewBox; private Canvas? _layeredCanvas; + private long _stylePropertyChangedToken; + public ThemedIcon() { DefaultStyleKey = typeof(ThemedIcon); + _stylePropertyChangedToken = RegisterPropertyChangedCallback( + StyleProperty, + OnStylePropertyChanged + ); + + Unloaded += OnUnloaded; + } + + private void OnUnloaded(object sender, RoutedEventArgs e) + { + UnregisterPropertyChangedCallback(StyleProperty, _stylePropertyChangedToken); + IsEnabledChanged -= OnIsEnabledChanged; + Unloaded -= OnUnloaded; } protected override void OnApplyTemplate() @@ -252,4 +267,4 @@ private void OnIconSizeChanged() Height = Width = IconSize; } } -} +} \ No newline at end of file diff --git a/src/Files.App/UserControls/NavigationToolbar.xaml b/src/Files.App/UserControls/NavigationToolbar.xaml index 227ecf2e1a6c..1cbb9df0ebf5 100644 --- a/src/Files.App/UserControls/NavigationToolbar.xaml +++ b/src/Files.App/UserControls/NavigationToolbar.xaml @@ -297,12 +297,12 @@ - + - +