/// <summary> /// Allows insertion of a menu item /// </summary> /// <param name="mitem">The menu item to insert</param> /// <param name="menuItemNameToFind">Name of the main menuitem element to insert before or after - find in MainWindow.xaml or with Debug Tools</param> /// <param name="menuItemTextToFind">Text of the menuitem element to insert bfore or after (use if there's is no explicit Name for the item)</param> /// <param name="addMode">Determines where the item is to be inserted</param> public bool AddMenuItem(MenuItem mitem, string menuItemNameToFind = null, string menuItemTextToFind = null, AddMenuItemModes addMode = AddMenuItemModes.AddAfter) { // find the menu item to in var menuItem = GetChildMenuItem(Model.Window.MainMenu, menuItemNameToFind, menuItemTextToFind); if (menuItem == null) { mmApp.Log("Couldn't add menu item: " + mitem.Header + " " + addMode + " " + menuItemNameToFind ?? menuItemTextToFind, logLevel: LogLevels.Warning); return(false); } ItemsControl parent = menuItem.Parent as ItemsControl; if (parent == null) { mmApp.Log("Couldn't add menu item: " + mitem.Header + " " + addMode + " " + menuItemNameToFind ?? menuItemTextToFind, logLevel: LogLevels.Warning); return(false); } int idx; if (addMode == AddMenuItemModes.AddBefore) { idx = parent.Items.IndexOf(menuItem); } else if (addMode == AddMenuItemModes.Replace) { idx = parent.Items.IndexOf(menuItem); parent.Items[idx] = mitem; return(true); } else { idx = parent.Items.IndexOf(menuItem); idx++; } parent.Items.Insert(idx, mitem); return(true); }
/// <summary> /// Allows insertion of a menu item /// </summary> /// <param name="mitem">The menu item to insert</param> /// <param name="menuItemNameForInsertionAfter">Name of the main menuitem element to insert before or after - find in MainWindow.xaml or with Debug Tools</param> /// <param name="menuItemTextForInsertionAfter">Text of the menuitem element to insert bfore or after (use if there's is no explicit Name for the item)</param> /// <param name="addMode">Determines where the item is to be inserted</param> public bool AddMenuItem(MenuItem mitem, string menuItemNameForInsertionAfter = null, string menuItemTextForInsertionAfter = null, AddMenuItemModes addMode = AddMenuItemModes.AddAfter) { // find the menu item to in var menuItem = GetChildMenuItem(Model.Window.MainMenu, menuItemNameForInsertionAfter, menuItemTextForInsertionAfter); if (menuItem == null) { return(false); } ItemsControl parent = menuItem.Parent as ItemsControl; if (parent == null) { return(false); } int idx; if (addMode == AddMenuItemModes.AddBefore) { idx = parent.Items.IndexOf(menuItem); } else if (addMode == AddMenuItemModes.Replace) { idx = parent.Items.IndexOf(menuItem); parent.Items[idx] = mitem; return(true); } else { idx = parent.Items.IndexOf(menuItem); idx++; } parent.Items.Insert(idx, mitem); return(true); }