Browse Source

make app menu declaration sensible.

pull/2978/head
Dan Walmsley 7 years ago
parent
commit
a465b3ab21
  1. 24
      samples/ControlCatalog/App.xaml
  2. 2
      samples/ControlCatalog/App.xaml.cs
  3. 11
      src/Avalonia.Native/AvaloniaNativeMenuExporter.cs

24
samples/ControlCatalog/App.xaml

@ -19,20 +19,14 @@
</Application.Styles> </Application.Styles>
<NativeMenu.Menu> <NativeMenu.Menu>
<NativeMenu> <NativeMenu>
<NativeMenuItem> <NativeMenuItem Header="Open" Clicked="OnOpenClicked"/>
<NativeMenuItem.Menu> <NativeMenuItem Header="Recent">
<NativeMenu> <NativeMenuItem.Menu>
<NativeMenuItem Header="Open" Clicked="OnOpenClicked"/> <NativeMenu/>
<NativeMenuItem Header="Recent"> </NativeMenuItem.Menu>
<NativeMenuItem.Menu> </NativeMenuItem>
<NativeMenu/> <NativeMenuItem Header="Quit Avalonia" Gesture="CMD+Q"/>
</NativeMenuItem.Menu> </NativeMenu>
</NativeMenuItem>
<NativeMenuItem Header="Quit Avalonia" Gesture="CMD+Q"/>
</NativeMenu>
</NativeMenuItem.Menu>
</NativeMenuItem>
</NativeMenu>
</NativeMenu.Menu> </NativeMenu.Menu>
</Application> </Application>

2
samples/ControlCatalog/App.xaml.cs

@ -16,7 +16,7 @@ namespace ControlCatalog
Name = "Avalonia"; Name = "Avalonia";
_recentMenu = ((NativeMenu.GetMenu(this).Items[0] as NativeMenuItem).Menu.Items[1] as NativeMenuItem).Menu; _recentMenu = (NativeMenu.GetMenu(this).Items[1] as NativeMenuItem).Menu;
} }
public void OnOpenClicked(object sender, EventArgs args) public void OnOpenClicked(object sender, EventArgs args)

11
src/Avalonia.Native/AvaloniaNativeMenuExporter.cs

@ -276,8 +276,17 @@ namespace Avalonia.Native
appMenu = _factory.CreateMenu(); appMenu = _factory.CreateMenu();
} }
var menuItem = new NativeMenuItem();
menuItem.Menu = new NativeMenu();
foreach(var item in menuItems)
{
menuItem.Menu.Add(item);
}
appMenu.Clear(); appMenu.Clear();
AddItemsToMenu(appMenu, menuItems); AddItemsToMenu(appMenu, new List<NativeMenuItemBase> { menuItem });
_factory.SetAppMenu(appMenu); _factory.SetAppMenu(appMenu);
} }

Loading…
Cancel
Save