diff --git a/Perspex.Controls/Menu.cs b/Perspex.Controls/Menu.cs
index e4a8c6bf10..924e8b4cec 100644
--- a/Perspex.Controls/Menu.cs
+++ b/Perspex.Controls/Menu.cs
@@ -72,7 +72,7 @@ namespace Perspex.Controls
///
/// Closes the menu.
///
- public void CloseMenu()
+ public void Close()
{
foreach (MenuItem i in this.GetLogicalChildren())
{
@@ -86,10 +86,11 @@ namespace Perspex.Controls
///
/// Opens the menu in response to the Alt/F10 key.
///
- public void OpenMenu()
+ public void Open()
{
this.SelectedIndex = 0;
- ((IInputElement)this.SelectedItem)?.Focus();
+ this.SelectedMenuItem.Focus();
+ this.IsOpen = true;
}
///
@@ -138,7 +139,7 @@ namespace Perspex.Controls
protected override void OnLostFocus(RoutedEventArgs e)
{
base.OnLostFocus(e);
- //this.CloseMenu();
+ //this.Close();
}
///
@@ -151,12 +152,7 @@ namespace Perspex.Controls
base.OnKeyDown(e);
- if (this.IsOpen && e.Key == Key.Escape)
- {
- this.CloseMenu();
- e.Handled = true;
- }
- else if (menuWasOpen)
+ if (menuWasOpen)
{
// If a menu item was open and we navigate to a new one with the arrow keys, open
// that menu and select the first item.
@@ -199,7 +195,7 @@ namespace Perspex.Controls
/// The event args.
private void Deactivated(object sender, EventArgs e)
{
- this.CloseMenu();
+ this.Close();
}
///
@@ -208,7 +204,7 @@ namespace Perspex.Controls
/// The event args.
private void OnMenuClick(RoutedEventArgs e)
{
- this.CloseMenu();
+ this.Close();
}
///
@@ -224,7 +220,7 @@ namespace Perspex.Controls
if (!this.IsLogicalParentOf(control))
{
- this.CloseMenu();
+ this.Close();
}
}
}
diff --git a/Perspex.Controls/MenuItem.cs b/Perspex.Controls/MenuItem.cs
index b242197c02..f4869b698b 100644
--- a/Perspex.Controls/MenuItem.cs
+++ b/Perspex.Controls/MenuItem.cs
@@ -277,10 +277,6 @@ namespace Perspex.Controls
}
break;
-
- default:
- e.Handled = this.HandleAccessKey(e.Text);
- break;
}
if (!passStraightToParent)
@@ -289,60 +285,6 @@ namespace Perspex.Controls
}
}
- private bool HandleAccessKey(string text)
- {
- text = text.ToUpper();
-
- if (!this.IsSubMenuOpen)
- {
- var match = this.GetVisualDescendents()
- .OfType()
- .FirstOrDefault(x => x.AccessKey.ToString().ToUpper() == text);
-
- if (match != null)
- {
- if (this.HasSubMenu)
- {
- this.IsSubMenuOpen = true;
- }
- else
- {
- this.RaiseEvent(new RoutedEventArgs(ClickEvent));
- }
-
- return true;
- }
- }
- else
- {
- var match = this.popup.PopupRoot.GetVisualDescendents()
- .OfType()
- .FirstOrDefault(x => x.AccessKey.ToString().ToUpper() == text)
- ?.GetVisualAncestors()
- .OfType