diff --git a/src/Avalonia.Controls/WindowBase.cs b/src/Avalonia.Controls/WindowBase.cs
index d640a0c2dc..ac47e744e0 100644
--- a/src/Avalonia.Controls/WindowBase.cs
+++ b/src/Avalonia.Controls/WindowBase.cs
@@ -83,6 +83,19 @@ namespace Avalonia.Controls
///
/// Occurs when the window is resized.
///
+ ///
+ /// Although this event is similar to the event, they are
+ /// conceptually different:
+ ///
+ /// - is a window-level event, fired when a resize notification arrives
+ /// from the platform windowing subsystem. The event args contain details of the source of
+ /// the resize event in the property. This
+ /// event is raised before layout has been run on the window's content.
+ /// - is a layout-level event, fired when a layout pass
+ /// completes on a control. is present on all controls
+ /// and is fired when the control's size changes for any reason, including a
+ /// event in the case of a Window.
+ ///
public event EventHandler? Resized;
public new IWindowBaseImpl? PlatformImpl => (IWindowBaseImpl?) base.PlatformImpl;
@@ -237,14 +250,16 @@ namespace Avalonia.Controls
{
FrameSize = PlatformImpl?.FrameSize;
- if (ClientSize != clientSize)
+ var clientSizeChanged = ClientSize != clientSize;
+
+ ClientSize = clientSize;
+ OnResized(new WindowResizedEventArgs(clientSize, reason));
+
+ if (clientSizeChanged)
{
- ClientSize = clientSize;
LayoutManager.ExecuteLayoutPass();
Renderer.Resized(clientSize);
}
-
- OnResized(new WindowResizedEventArgs(clientSize, reason));
}
///