diff --git a/Perspex.Controls/MenuItem.cs b/Perspex.Controls/MenuItem.cs
index 18c9956a2b..307cfbc607 100644
--- a/Perspex.Controls/MenuItem.cs
+++ b/Perspex.Controls/MenuItem.cs
@@ -173,18 +173,7 @@ namespace Perspex.Controls
///
public bool IsTopLevel
{
- get;
- private set;
- }
-
- ///
- /// Called when the is attached to the visual tree.
- ///
- /// The root of the visual tree.
- protected override void OnAttachedToVisualTree(IRenderRoot root)
- {
- base.OnAttachedToVisualTree(root);
- this.IsTopLevel = this.Parent is Menu;
+ get { return this.Parent is Menu; }
}
///
@@ -259,6 +248,18 @@ namespace Perspex.Controls
passStraightToParent = this.IsTopLevel || !this.IsSubMenuOpen;
break;
+ case Key.Enter:
+ if (this.HasSubMenu)
+ {
+ goto case Key.Right;
+ }
+ else
+ {
+ this.RaiseEvent(new RoutedEventArgs(ClickEvent));
+ }
+
+ break;
+
case Key.Escape:
if (this.IsSubMenuOpen)
{