diff --git a/src/Avalonia.Layout/Layoutable.cs b/src/Avalonia.Layout/Layoutable.cs
index a08ab77d70..523c720e2f 100644
--- a/src/Avalonia.Layout/Layoutable.cs
+++ b/src/Avalonia.Layout/Layoutable.cs
@@ -367,10 +367,18 @@ namespace Avalonia.Layout
}
}
+
+ ///
+ /// Called by InvalidateMeasure
+ ///
+ protected virtual void OnMeasureInvalidated()
+ {
+ }
+
///
/// Invalidates the measurement of the control and queues a new layout pass.
///
- public virtual void InvalidateMeasure()
+ public void InvalidateMeasure()
{
if (IsMeasureValid)
{
@@ -384,6 +392,7 @@ namespace Avalonia.Layout
LayoutManager.Instance?.InvalidateMeasure(this);
InvalidateVisual();
}
+ OnMeasureInvalidated();
}
}
diff --git a/src/Windows/Avalonia.Win32.Interop/Wpf/WpfTopLevelImpl.cs b/src/Windows/Avalonia.Win32.Interop/Wpf/WpfTopLevelImpl.cs
index 094929deda..0620c6cc57 100644
--- a/src/Windows/Avalonia.Win32.Interop/Wpf/WpfTopLevelImpl.cs
+++ b/src/Windows/Avalonia.Win32.Interop/Wpf/WpfTopLevelImpl.cs
@@ -40,10 +40,9 @@ namespace Avalonia.Win32.Interop.Wpf
EnforceClientSize = false;
}
- public override void InvalidateMeasure()
+ protected override void OnMeasureInvalidated()
{
((FrameworkElement)PlatformImpl)?.InvalidateMeasure();
- base.InvalidateMeasure();
}
protected override void HandleResized(Size clientSize)