diff --git a/api/Avalonia.nupkg.xml b/api/Avalonia.nupkg.xml
index 275b25e01e..15e956bdc6 100644
--- a/api/Avalonia.nupkg.xml
+++ b/api/Avalonia.nupkg.xml
@@ -97,6 +97,12 @@
baseline/Avalonia/lib/netstandard2.0/Avalonia.Base.dll
current/Avalonia/lib/netstandard2.0/Avalonia.Base.dll
+
+ CP0002
+ F:Avalonia.Controls.ResourcesChangedEventArgs.Empty
+ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
+ current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
CP0002
F:Avalonia.Media.DrawingImage.ViewboxProperty
@@ -109,6 +115,12 @@
baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
+ CP0002
+ M:Avalonia.Controls.ResourcesChangedEventArgs.#ctor
+ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
+ current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
CP0002
M:Avalonia.Input.IKeyboardNavigationHandler.Move(Avalonia.Input.IInputElement,Avalonia.Input.NavigationDirection,Avalonia.Input.KeyModifiers)
@@ -487,6 +499,12 @@
baseline/Avalonia/lib/net6.0/Avalonia.Dialogs.dll
current/Avalonia/lib/net6.0/Avalonia.Dialogs.dll
+
+ CP0002
+ F:Avalonia.Controls.ResourcesChangedEventArgs.Empty
+ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
+ current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
CP0002
F:Avalonia.Media.DrawingImage.ViewboxProperty
@@ -499,6 +517,12 @@
baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
+ CP0002
+ M:Avalonia.Controls.ResourcesChangedEventArgs.#ctor
+ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
+ current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
CP0002
M:Avalonia.Input.IKeyboardNavigationHandler.Move(Avalonia.Input.IInputElement,Avalonia.Input.NavigationDirection,Avalonia.Input.KeyModifiers)
@@ -1201,6 +1225,18 @@
baseline/Avalonia/lib/netstandard2.0/Avalonia.OpenGL.dll
current/Avalonia/lib/netstandard2.0/Avalonia.OpenGL.dll
+
+ CP0007
+ T:Avalonia.Controls.ResourcesChangedEventArgs
+ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
+ current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
+
+ CP0007
+ T:Avalonia.Controls.ResourcesChangedEventArgs
+ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
+ current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
CP0008
T:Avalonia.Media.StreamGeometryContext
@@ -1225,12 +1261,24 @@
baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
+ CP0009
+ T:Avalonia.Controls.ResourcesChangedEventArgs
+ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
+ current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
CP0009
T:Avalonia.Platform.Screen
baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+ CP0009
+ T:Avalonia.Controls.ResourcesChangedEventArgs
+ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
+ current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
CP0009
T:Avalonia.Platform.Screen
diff --git a/src/Avalonia.Base/Controls/IResourceHost.cs b/src/Avalonia.Base/Controls/IResourceHost.cs
index 361e3562ec..286f0e36ef 100644
--- a/src/Avalonia.Base/Controls/IResourceHost.cs
+++ b/src/Avalonia.Base/Controls/IResourceHost.cs
@@ -29,12 +29,4 @@ namespace Avalonia.Controls
///
void NotifyHostedResourcesChanged(ResourcesChangedEventArgs e);
}
-
- // TODO12: merge with IResourceHost
- internal interface IResourceHost2 : IResourceHost
- {
- event EventHandler ResourcesChanged2;
-
- void NotifyHostedResourcesChanged(ResourcesChangedToken token);
- }
}
diff --git a/src/Avalonia.Base/Controls/ResourceDictionary.cs b/src/Avalonia.Base/Controls/ResourceDictionary.cs
index e0944a5708..f8f6267e7b 100644
--- a/src/Avalonia.Base/Controls/ResourceDictionary.cs
+++ b/src/Avalonia.Base/Controls/ResourceDictionary.cs
@@ -358,7 +358,7 @@ namespace Avalonia.Controls
if (hasResources)
{
- owner.NotifyHostedResourcesChanged(ResourcesChangedToken.Create());
+ owner.NotifyHostedResourcesChanged(ResourcesChangedEventArgs.Create());
}
}
@@ -385,7 +385,7 @@ namespace Avalonia.Controls
if (hasResources)
{
- owner.NotifyHostedResourcesChanged(ResourcesChangedToken.Create());
+ owner.NotifyHostedResourcesChanged(ResourcesChangedEventArgs.Create());
}
}
diff --git a/src/Avalonia.Base/Controls/ResourceNodeExtensions.cs b/src/Avalonia.Base/Controls/ResourceNodeExtensions.cs
index 36cc00d245..07c1c8d654 100644
--- a/src/Avalonia.Base/Controls/ResourceNodeExtensions.cs
+++ b/src/Avalonia.Base/Controls/ResourceNodeExtensions.cs
@@ -158,7 +158,7 @@ namespace Avalonia.Controls
protected override void Initialize()
{
- _target.SubscribeToResourcesChanged(ResourcesChanged, ResourcesChanged2);
+ _target.ResourcesChanged += ResourcesChanged;
if (_target is IThemeVariantHost themeVariantHost)
{
@@ -168,7 +168,7 @@ namespace Avalonia.Controls
protected override void Deinitialize()
{
- _target.UnsubscribeFromResourcesChanged(ResourcesChanged, ResourcesChanged2);
+ _target.ResourcesChanged -= ResourcesChanged;
if (_target is IThemeVariantHost themeVariantHost)
{
@@ -186,11 +186,6 @@ namespace Avalonia.Controls
PublishNext(GetValue());
}
- private void ResourcesChanged2(object? sender, ResourcesChangedToken token)
- {
- PublishNext(GetValue());
- }
-
private void ActualThemeVariantChanged(object? sender, EventArgs e)
{
PublishNext(GetValue());
@@ -230,7 +225,7 @@ namespace Avalonia.Controls
_target.OwnerChanged += OwnerChanged;
_owner = _target.Owner;
- _owner?.SubscribeToResourcesChanged(ResourcesChanged, ResourcesChanged2);
+ _owner?.ResourcesChanged += ResourcesChanged;
if (_overrideThemeVariant is null && _owner is IThemeVariantHost themeVariantHost)
{
@@ -242,7 +237,7 @@ namespace Avalonia.Controls
{
_target.OwnerChanged -= OwnerChanged;
- _owner?.UnsubscribeFromResourcesChanged(ResourcesChanged, ResourcesChanged2);
+ _owner?.ResourcesChanged -= ResourcesChanged;
if (_overrideThemeVariant is null && _owner is IThemeVariantHost themeVariantHost)
{
@@ -270,7 +265,7 @@ namespace Avalonia.Controls
private void OwnerChanged(object? sender, EventArgs e)
{
- _owner?.UnsubscribeFromResourcesChanged(ResourcesChanged, ResourcesChanged2);
+ _owner?.ResourcesChanged -= ResourcesChanged;
if (_overrideThemeVariant is null && _owner is IThemeVariantHost themeVariantHost)
{
@@ -279,7 +274,7 @@ namespace Avalonia.Controls
_owner = _target.Owner;
- _owner?.SubscribeToResourcesChanged(ResourcesChanged, ResourcesChanged2);
+ _owner?.ResourcesChanged += ResourcesChanged;
if (_overrideThemeVariant is null && _owner is IThemeVariantHost themeVariantHost2)
{
@@ -299,11 +294,6 @@ namespace Avalonia.Controls
PublishNext();
}
- private void ResourcesChanged2(object? sender, ResourcesChangedToken token)
- {
- PublishNext();
- }
-
private object? GetValue()
{
var theme = _overrideThemeVariant ?? (_target.Owner as IThemeVariantHost)?.ActualThemeVariant;
diff --git a/src/Avalonia.Base/Controls/ResourceProvider.cs b/src/Avalonia.Base/Controls/ResourceProvider.cs
index f0ab42a4a8..f73f11e713 100644
--- a/src/Avalonia.Base/Controls/ResourceProvider.cs
+++ b/src/Avalonia.Base/Controls/ResourceProvider.cs
@@ -45,7 +45,7 @@ public abstract class ResourceProvider : AvaloniaObject, IResourceProvider
protected void RaiseResourcesChanged()
{
- Owner?.NotifyHostedResourcesChanged(ResourcesChangedToken.Create());
+ Owner?.NotifyHostedResourcesChanged(ResourcesChangedEventArgs.Create());
}
///
@@ -57,7 +57,7 @@ public abstract class ResourceProvider : AvaloniaObject, IResourceProvider
{
if (HasResources)
{
- owner.NotifyHostedResourcesChanged(ResourcesChangedToken.Create());
+ owner.NotifyHostedResourcesChanged(ResourcesChangedEventArgs.Create());
}
}
@@ -70,7 +70,7 @@ public abstract class ResourceProvider : AvaloniaObject, IResourceProvider
{
if (HasResources)
{
- owner.NotifyHostedResourcesChanged(ResourcesChangedToken.Create());
+ owner.NotifyHostedResourcesChanged(ResourcesChangedEventArgs.Create());
}
}
diff --git a/src/Avalonia.Base/Controls/ResourcesChangedEventArgs.cs b/src/Avalonia.Base/Controls/ResourcesChangedEventArgs.cs
index a60c95a2e0..f78910b003 100644
--- a/src/Avalonia.Base/Controls/ResourcesChangedEventArgs.cs
+++ b/src/Avalonia.Base/Controls/ResourcesChangedEventArgs.cs
@@ -1,10 +1,24 @@
-using System;
+using System.Threading;
-namespace Avalonia.Controls
+namespace Avalonia.Controls;
+
+///
+/// Represents the event arguments of .
+/// The identifies the changes.
+///
+/// The sequence number used to identify the changes.
+///
+/// For performance reasons, this type is a struct.
+/// Avoid using a default instance of this type or its default constructor, call instead.
+///
+public readonly record struct ResourcesChangedEventArgs(int SequenceNumber)
{
- // TODO12: change this to be a struct, remove ResourcesChangedToken
- public class ResourcesChangedEventArgs : EventArgs
- {
- public static new readonly ResourcesChangedEventArgs Empty = new ResourcesChangedEventArgs();
- }
+ private static int s_lastSequenceNumber;
+
+ ///
+ /// Creates a new instance of with an auto-incremented sequence number.
+ ///
+ ///
+ public static ResourcesChangedEventArgs Create()
+ => new(Interlocked.Increment(ref s_lastSequenceNumber));
}
diff --git a/src/Avalonia.Base/Controls/ResourcesChangedHelper.cs b/src/Avalonia.Base/Controls/ResourcesChangedHelper.cs
deleted file mode 100644
index 8ad121ad3a..0000000000
--- a/src/Avalonia.Base/Controls/ResourcesChangedHelper.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-using System;
-using Avalonia.LogicalTree;
-
-namespace Avalonia.Controls;
-
-internal static class ResourcesChangedHelper
-{
- internal static void NotifyHostedResourcesChanged(this IResourceHost host, ResourcesChangedToken token)
- {
- if (host is IResourceHost2 host2)
- host2.NotifyHostedResourcesChanged(token);
- else
- host.NotifyHostedResourcesChanged(ResourcesChangedEventArgs.Empty);
- }
-
- internal static void NotifyResourcesChanged(this ILogical logical, ResourcesChangedToken token)
- {
- if (logical is StyledElement styledElement)
- styledElement.NotifyResourcesChanged(token);
- else
- logical.NotifyResourcesChanged(ResourcesChangedEventArgs.Empty);
- }
-
- internal static void SubscribeToResourcesChanged(
- this IResourceHost host,
- EventHandler handler,
- EventHandler handler2)
- {
- if (host is IResourceHost2 host2)
- host2.ResourcesChanged2 += handler2;
- else
- host.ResourcesChanged += handler;
- }
-
- internal static void UnsubscribeFromResourcesChanged(
- this IResourceHost host,
- EventHandler handler,
- EventHandler handler2)
- {
- if (host is IResourceHost2 host2)
- host2.ResourcesChanged2 -= handler2;
- else
- host.ResourcesChanged -= handler;
- }
-}
diff --git a/src/Avalonia.Base/Controls/ResourcesChangedToken.cs b/src/Avalonia.Base/Controls/ResourcesChangedToken.cs
deleted file mode 100644
index 8de692e729..0000000000
--- a/src/Avalonia.Base/Controls/ResourcesChangedToken.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using System.Threading;
-
-namespace Avalonia.Controls;
-
-internal record struct ResourcesChangedToken(int SequenceNumber)
-{
- private static int s_lastSequenceNumber;
-
- public static ResourcesChangedToken Create()
- => new(Interlocked.Increment(ref s_lastSequenceNumber));
-}
diff --git a/src/Avalonia.Base/StyledElement.cs b/src/Avalonia.Base/StyledElement.cs
index b7f6262d9f..711d17d014 100644
--- a/src/Avalonia.Base/StyledElement.cs
+++ b/src/Avalonia.Base/StyledElement.cs
@@ -29,7 +29,7 @@ namespace Avalonia
IDataContextProvider,
ILogical,
IThemeVariantHost,
- IResourceHost2,
+ IResourceHost,
IStyleHost,
ISetLogicalParent,
ISetInheritanceParent,
@@ -94,8 +94,7 @@ namespace Avalonia
private AvaloniaObject? _templatedParent;
private bool _dataContextUpdating;
private ControlTheme? _implicitTheme;
- private EventHandler? _resourcesChanged2;
- private ResourcesChangedToken _lastResourcesChangedToken;
+ private ResourcesChangedEventArgs _lastResourcesChangedEventArgs;
///
/// Initializes static members of the class.
@@ -150,12 +149,6 @@ namespace Avalonia
///
public event EventHandler? ResourcesChanged;
- event EventHandler? IResourceHost2.ResourcesChanged2
- {
- add => _resourcesChanged2 += value;
- remove => _resourcesChanged2 -= value;
- }
-
///
public event EventHandler? ActualThemeVariantChanged;
@@ -437,14 +430,11 @@ namespace Avalonia
///
void ILogical.NotifyResourcesChanged(ResourcesChangedEventArgs e)
- => NotifyResourcesChanged(ResourcesChangedToken.Create());
+ => NotifyResourcesChanged(e);
///
void IResourceHost.NotifyHostedResourcesChanged(ResourcesChangedEventArgs e)
- => NotifyResourcesChanged(ResourcesChangedToken.Create());
-
- void IResourceHost2.NotifyHostedResourcesChanged(ResourcesChangedToken token)
- => NotifyResourcesChanged(token);
+ => NotifyResourcesChanged(e);
///
public bool TryGetResource(object key, ThemeVariant? theme, out object? value)
@@ -499,7 +489,7 @@ namespace Avalonia
// non-rooted control beacuse it's unlikely that dynamic resources need to be
// correct until the control is added to the tree, and it causes a *lot* of
// notifications.
- NotifyResourcesChanged(ResourcesChangedToken.Create());
+ NotifyResourcesChanged(ResourcesChangedEventArgs.Create());
}
RaisePropertyChanged(ParentProperty, old, Parent);
@@ -552,8 +542,8 @@ namespace Avalonia
///
/// Notifies child controls that a change has been made to resources that apply to them.
///
- /// The change token.
- internal virtual void NotifyChildResourcesChanged(ResourcesChangedToken token)
+ /// The change token.
+ internal virtual void NotifyChildResourcesChanged(ResourcesChangedEventArgs e)
{
if (_logicalChildren is object)
{
@@ -563,7 +553,7 @@ namespace Avalonia
{
for (var i = 0; i < count; ++i)
{
- _logicalChildren[i].NotifyResourcesChanged(token);
+ _logicalChildren[i].NotifyResourcesChanged(e);
}
}
}
@@ -895,7 +885,7 @@ namespace Avalonia
ReevaluateImplicitTheme();
ApplyStyling();
- NotifyResourcesChanged(ResourcesChangedToken.Create(), propagate: false);
+ NotifyResourcesChanged(ResourcesChangedEventArgs.Create(), propagate: false);
OnAttachedToLogicalTree(e);
AttachedToLogicalTree?.Invoke(this, e);
@@ -999,23 +989,22 @@ namespace Avalonia
}
internal void NotifyResourcesChanged(
- ResourcesChangedToken token,
+ ResourcesChangedEventArgs e,
bool propagate = true)
{
// We already got a notification for this element, ignore.
- if (token.Equals(_lastResourcesChangedToken))
+ if (e.Equals(_lastResourcesChangedEventArgs))
{
return;
}
- _lastResourcesChangedToken = token;
+ _lastResourcesChangedEventArgs = e;
- _resourcesChanged2?.Invoke(this, token);
- ResourcesChanged?.Invoke(this, ResourcesChangedEventArgs.Empty);
+ ResourcesChanged?.Invoke(this, e);
if (propagate)
{
- NotifyChildResourcesChanged(token);
+ NotifyChildResourcesChanged(e);
}
}
diff --git a/src/Avalonia.Base/Styling/StyleBase.cs b/src/Avalonia.Base/Styling/StyleBase.cs
index 038fc7c5c3..7dbdb22e9c 100644
--- a/src/Avalonia.Base/Styling/StyleBase.cs
+++ b/src/Avalonia.Base/Styling/StyleBase.cs
@@ -54,7 +54,7 @@ namespace Avalonia.Styling
if (hadResources || _resources.HasResources)
{
- Owner.NotifyHostedResourcesChanged(ResourcesChangedToken.Create());
+ Owner.NotifyHostedResourcesChanged(ResourcesChangedEventArgs.Create());
}
}
}
diff --git a/src/Avalonia.Controls/Application.cs b/src/Avalonia.Controls/Application.cs
index 0bad04bb23..ff04499c42 100644
--- a/src/Avalonia.Controls/Application.cs
+++ b/src/Avalonia.Controls/Application.cs
@@ -30,7 +30,7 @@ namespace Avalonia
/// method.
/// - Tracks the lifetime of the application.
///
- public class Application : AvaloniaObject, IDataContextProvider, IGlobalDataTemplates, IGlobalStyles, IThemeVariantHost, IResourceHost2, IApplicationPlatformEvents, IOptionalFeatureProvider
+ public class Application : AvaloniaObject, IDataContextProvider, IGlobalDataTemplates, IGlobalStyles, IThemeVariantHost, IResourceHost, IApplicationPlatformEvents, IOptionalFeatureProvider
{
///
/// The application-global data templates.
@@ -43,7 +43,6 @@ namespace Avalonia
private Action>? _stylesRemoved;
private IApplicationLifetime? _applicationLifetime;
private bool _setupCompleted;
- private EventHandler? _resourcesChanged2;
///
/// Defines the property.
@@ -62,12 +61,6 @@ namespace Avalonia
///
public event EventHandler? ResourcesChanged;
- event EventHandler? IResourceHost2.ResourcesChanged2
- {
- add => _resourcesChanged2 += value;
- remove => _resourcesChanged2 -= value;
- }
-
[Obsolete("Use Application.Current.TryGetFeature() instead.")]
public event EventHandler? UrlsOpened;
@@ -239,16 +232,9 @@ namespace Avalonia
void IResourceHost.NotifyHostedResourcesChanged(ResourcesChangedEventArgs e)
{
- _resourcesChanged2?.Invoke(this, ResourcesChangedToken.Create());
ResourcesChanged?.Invoke(this, e);
}
- void IResourceHost2.NotifyHostedResourcesChanged(ResourcesChangedToken token)
- {
- _resourcesChanged2?.Invoke(this, token);
- ResourcesChanged?.Invoke(this, ResourcesChangedEventArgs.Empty);
- }
-
void IStyleHost.StylesAdded(IReadOnlyList styles)
{
_stylesAdded?.Invoke(styles);
diff --git a/src/Avalonia.Controls/Primitives/TemplatedControl.cs b/src/Avalonia.Controls/Primitives/TemplatedControl.cs
index 7444e187be..d8ecfa99e8 100644
--- a/src/Avalonia.Controls/Primitives/TemplatedControl.cs
+++ b/src/Avalonia.Controls/Primitives/TemplatedControl.cs
@@ -362,7 +362,7 @@ namespace Avalonia.Controls.Primitives
}
///
- internal sealed override void NotifyChildResourcesChanged(ResourcesChangedToken token)
+ internal sealed override void NotifyChildResourcesChanged(ResourcesChangedEventArgs e)
{
var count = VisualChildren.Count;
@@ -370,11 +370,11 @@ namespace Avalonia.Controls.Primitives
{
if (VisualChildren[i] is ILogical logical)
{
- logical.NotifyResourcesChanged(token);
+ logical.NotifyResourcesChanged(e);
}
}
- base.NotifyChildResourcesChanged(token);
+ base.NotifyChildResourcesChanged(e);
}
///
diff --git a/src/Avalonia.Controls/Primitives/VisualLayerManager.cs b/src/Avalonia.Controls/Primitives/VisualLayerManager.cs
index 2e1b9a59fb..91aa6b9bd0 100644
--- a/src/Avalonia.Controls/Primitives/VisualLayerManager.cs
+++ b/src/Avalonia.Controls/Primitives/VisualLayerManager.cs
@@ -118,12 +118,12 @@ namespace Avalonia.Controls.Primitives
}
///
- internal override void NotifyChildResourcesChanged(ResourcesChangedToken token)
+ internal override void NotifyChildResourcesChanged(ResourcesChangedEventArgs e)
{
foreach (var l in _layers)
- l.NotifyResourcesChanged(token);
+ l.NotifyResourcesChanged(e);
- base.NotifyChildResourcesChanged(token);
+ base.NotifyChildResourcesChanged(e);
}
///
diff --git a/src/Avalonia.Controls/TopLevel.cs b/src/Avalonia.Controls/TopLevel.cs
index 78c2868b88..8a631fe075 100644
--- a/src/Avalonia.Controls/TopLevel.cs
+++ b/src/Avalonia.Controls/TopLevel.cs
@@ -121,12 +121,6 @@ namespace Avalonia.Controls
(s, h) => s.ResourcesChanged -= h
);
- private static readonly WeakEvent
- ResourcesChanged2WeakEvent = WeakEvent.Register(
- (s, h) => s.ResourcesChanged2 += h,
- (s, h) => s.ResourcesChanged2 -= h
- );
-
private readonly IInputManager? _inputManager;
private readonly IToolTipService? _tooltipService;
private readonly IAccessKeyHandler? _accessKeyHandler;
@@ -144,7 +138,6 @@ namespace Avalonia.Controls
private ILayoutManager? _layoutManager;
private Border? _transparencyFallbackBorder;
private TargetWeakEventSubscriber? _resourcesChangesSubscriber;
- private TargetWeakEventSubscriber? _resourcesChangesSubscriber2;
private IStorageProvider? _storageProvider;
private Screens? _screens;
private LayoutDiagnosticBridge? _layoutDiagnosticBridge;
@@ -270,25 +263,15 @@ namespace Avalonia.Controls
var stylingParent = ((IStyleHost)this).StylingParent;
- if (stylingParent is IResourceHost2 applicationResources2)
+ if (stylingParent is IResourceHost applicationResources2)
{
- _resourcesChangesSubscriber2 = new TargetWeakEventSubscriber(
+ _resourcesChangesSubscriber = new TargetWeakEventSubscriber(
this, static (target, _, _, token) =>
{
target.NotifyResourcesChanged(token);
});
- ResourcesChanged2WeakEvent.Subscribe(applicationResources2, _resourcesChangesSubscriber2);
- }
- else if (stylingParent is IResourceHost applicationResources)
- {
- _resourcesChangesSubscriber = new TargetWeakEventSubscriber(
- this, static (target, _, _, _) =>
- {
- target.NotifyResourcesChanged(ResourcesChangedToken.Create());
- });
-
- ResourcesChangedWeakEvent.Subscribe(applicationResources, _resourcesChangesSubscriber);
+ ResourcesChangedWeakEvent.Subscribe(applicationResources2, _resourcesChangesSubscriber);
}
impl.LostFocus += PlatformImpl_LostFocus;
diff --git a/src/Avalonia.Themes.Fluent/Accents/SystemAccentColors.cs b/src/Avalonia.Themes.Fluent/Accents/SystemAccentColors.cs
index 95f135a40a..920c66ed1a 100644
--- a/src/Avalonia.Themes.Fluent/Accents/SystemAccentColors.cs
+++ b/src/Avalonia.Themes.Fluent/Accents/SystemAccentColors.cs
@@ -154,6 +154,6 @@ internal sealed class SystemAccentColors : ResourceProvider
private void PlatformSettingsOnColorValuesChanged(object? sender, PlatformColorValues e)
{
_invalidateColors = true;
- Owner?.NotifyHostedResourcesChanged(ResourcesChangedEventArgs.Empty);
+ Owner?.NotifyHostedResourcesChanged(ResourcesChangedEventArgs.Create());
}
}
diff --git a/src/Avalonia.Themes.Fluent/FluentTheme.xaml.cs b/src/Avalonia.Themes.Fluent/FluentTheme.xaml.cs
index 53cd36215c..fc03021743 100644
--- a/src/Avalonia.Themes.Fluent/FluentTheme.xaml.cs
+++ b/src/Avalonia.Themes.Fluent/FluentTheme.xaml.cs
@@ -63,7 +63,7 @@ namespace Avalonia.Themes.Fluent
if (change.Property == DensityStyleProperty)
{
- Owner?.NotifyHostedResourcesChanged(ResourcesChangedEventArgs.Empty);
+ Owner?.NotifyHostedResourcesChanged(ResourcesChangedEventArgs.Create());
}
}
diff --git a/src/Markup/Avalonia.Markup.Xaml/Data/DynamicResourceExpression.cs b/src/Markup/Avalonia.Markup.Xaml/Data/DynamicResourceExpression.cs
index e65282b36b..fbe09fa0de 100644
--- a/src/Markup/Avalonia.Markup.Xaml/Data/DynamicResourceExpression.cs
+++ b/src/Markup/Avalonia.Markup.Xaml/Data/DynamicResourceExpression.cs
@@ -84,8 +84,6 @@ namespace Avalonia.Markup.Xaml.MarkupExtensions
private void ResourcesChanged(object? sender, ResourcesChangedEventArgs e) => PublishValue();
- private void ResourcesChanged2(object? sender, ResourcesChangedToken token) => PublishValue();
-
private void ActualThemeVariantChanged(object? sender, EventArgs e)
{
if (!IsRunning)
@@ -134,7 +132,7 @@ namespace Avalonia.Markup.Xaml.MarkupExtensions
{
if (host is not null)
{
- host.SubscribeToResourcesChanged(ResourcesChanged, ResourcesChanged2);
+ host.ResourcesChanged += ResourcesChanged;
if (!_overrideThemeVariant && _host is IThemeVariantHost themeVariantHost)
{
@@ -148,7 +146,7 @@ namespace Avalonia.Markup.Xaml.MarkupExtensions
{
if (host is not null)
{
- host.UnsubscribeFromResourcesChanged(ResourcesChanged, ResourcesChanged2);
+ host.ResourcesChanged -= ResourcesChanged;
if (!_overrideThemeVariant && _host is IThemeVariantHost themeVariantHost)
themeVariantHost.ActualThemeVariantChanged -= ActualThemeVariantChanged;