diff --git a/src/Avalonia.Controls/MenuItem.cs b/src/Avalonia.Controls/MenuItem.cs
index 5588bde7c0..5c9dd4e193 100644
--- a/src/Avalonia.Controls/MenuItem.cs
+++ b/src/Avalonia.Controls/MenuItem.cs
@@ -309,7 +309,12 @@ namespace Avalonia.Controls
protected override bool IsEnabledCore => base.IsEnabledCore && _commandCanExecute;
///
- bool IMenuElement.MoveSelection(NavigationDirection direction, bool wrap) => MoveSelection(direction, wrap);
+ bool IMenuElement.MoveSelection(NavigationDirection direction, bool wrap)
+ {
+ if (Presenter?.Panel is null)
+ (VisualRoot as ILayoutRoot)?.LayoutManager.ExecuteLayoutPass();
+ return MoveSelection(direction, wrap);
+ }
///
IMenuItem? IMenuElement.SelectedItem