private void BuildMenu()
        {
            var settingsItem = new SDK.Model.MenuItem("Settings", "appbar_settings", new SDK.Tools.Thickness(5, 5, 5, 5), true);

            settingsItem.Click += (s, e) => {
                MainWindow.SettingsFlyout.Width = MainWindow.ProfileSwitcher.ActualWidth + MainWindow.FLYOUT_WIDTH_MIN;
                if (!MainWindow.SettingsFlyout.IsOpen)
                {
                    MainWindow.SettingsFlyout.Visibility = Visibility.Hidden;
                }
                MainWindow.SettingsFlyout.IsOpen = true;
            };

            var consoleItem = new SDK.Model.MenuItem("Console", "appbar_app", new SDK.Tools.Thickness(5, 7, 5, 7), true);

            consoleItem.Click += (s, e) => {
                ShowWindow(App.Kernel.Get <Logger>().Container);
                MainWindow.MenuFlyout.IsOpen = false;
            };

            var aboutItem = new SDK.Model.MenuItem("About", "appbar_information", new SDK.Tools.Thickness(9, 4, 9, 4), true);

            aboutItem.Click += (s, e) => {
                ShowWindow(App.Kernel.Get <About>().Container);
                MainWindow.MenuFlyout.IsOpen = false;
            };

            List <MenuItem> extraMenuItems = new List <MenuItem>(MenuItems);

            MenuItems.Clear();
            MenuItems.Add(settingsItem);
            MenuItems.Add(consoleItem);
            MenuItems.Add(aboutItem);
            InternalMenuCount = MenuItems.Count;
            OwnedItems.AddRange(MenuItems);
            foreach (MenuItem item in extraMenuItems)
            {
                MenuItems.Add(item);
            }

            MainPage        = new PageItem("MainWindow_NewsTab", new MainPage().Container, true);
            Gallery         = new PageItem("MainWindow_GalleryTab", new Gallery().Container, true);
            Community       = new PageItem("MainWindow_CommunityTab", new Community().Container, true);
            Personalization = new PageItem("MainWindow_PersonalizationTab", new Personalization().Container, true);

            List <PageItem> extraPages = new List <PageItem>(PageItems);

            PageItems.Clear();
            PageItems.Add(MainPage);
            PageItems.Add(Gallery);
            PageItems.Add(Community);
            PageItems.Add(Personalization);
            OwnedItems.AddRange(PageItems);
            foreach (PageItem item in extraPages)
            {
                PageItems.Add(item);
            }
        }
 public void AddMenuItem(SDK.Model.MenuItem menuItem)
 {
     lock (MenuItems) {
         if (!IsMenuSeparatorInserted)
         {
             MenuItems.Add(MenuItem.Separator);
             IsMenuSeparatorInserted = true;
         }
         MenuItems.Add(menuItem);
     }
 }
 public bool RemoveMenuItem(SDK.Model.MenuItem menuItem)
 {
     lock (MenuItems) {
         if (OwnedItems.Contains(menuItem))
         {
             throw new ArgumentException("You are not allowed to remove default MenuItem");
         }
         bool result = MenuItems.Remove(menuItem);
         if (MenuItems.Count == InternalMenuCount + 1)
         {
             var obj = MenuItems.Last();
             if (obj.IsSeparator)
             {
                 MenuItems.Remove(obj);
                 IsMenuSeparatorInserted = false;
             }
         }
         return(result);
     }
 }