Browse Source

make app menu declaration sensible.

pull/2978/head
Dan Walmsley 6 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>
<NativeMenu.Menu>
<NativeMenu>
<NativeMenuItem>
<NativeMenuItem.Menu>
<NativeMenu>
<NativeMenuItem Header="Open" Clicked="OnOpenClicked"/>
<NativeMenuItem Header="Recent">
<NativeMenuItem.Menu>
<NativeMenu/>
</NativeMenuItem.Menu>
</NativeMenuItem>
<NativeMenuItem Header="Quit Avalonia" Gesture="CMD+Q"/>
</NativeMenu>
</NativeMenuItem.Menu>
</NativeMenuItem>
</NativeMenu>
<NativeMenu>
<NativeMenuItem Header="Open" Clicked="OnOpenClicked"/>
<NativeMenuItem Header="Recent">
<NativeMenuItem.Menu>
<NativeMenu/>
</NativeMenuItem.Menu>
</NativeMenuItem>
<NativeMenuItem Header="Quit Avalonia" Gesture="CMD+Q"/>
</NativeMenu>
</NativeMenu.Menu>
</Application>

2
samples/ControlCatalog/App.xaml.cs

@ -16,7 +16,7 @@ namespace ControlCatalog
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)

11
src/Avalonia.Native/AvaloniaNativeMenuExporter.cs

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

Loading…
Cancel
Save