private void AddMenuItem(ToolStripItemCollection destinationItems, System.Windows.Controls.MenuItem menuItem) { string MenuHeader = (string)menuItem.Header; ToolStripMenuItem NewMenuItem; if (menuItem.Icon is Bitmap MenuBitmap) { NewMenuItem = new ToolStripMenuItem(MenuHeader, MenuBitmap); } else if (menuItem.Icon is Icon MenuIcon) { NewMenuItem = new ToolStripMenuItem(MenuHeader, MenuIcon.ToBitmap()); } else { NewMenuItem = new ToolStripMenuItem(MenuHeader); } NewMenuItem.Click += OnMenuClicked; // See PrepareMenuItem for using the visibility to carry Visible/Enabled flags NewMenuItem.Visible = (menuItem.Visibility != System.Windows.Visibility.Collapsed); NewMenuItem.Enabled = (menuItem.Visibility == System.Windows.Visibility.Visible); NewMenuItem.Checked = menuItem.IsChecked; destinationItems.Add(NewMenuItem); MenuTable.Add(NewMenuItem, this); CommandTable.Add(NewMenuItem, menuItem.Command); }
// Add MenuItem to MenuTable using Count+1 as the ID (so the menu begins from 1 instead of 0) and a Tuple made out of String str and Action<int> fn static void AddMenuItem(String str, Action <int> fn) { MenuTable.Add(MenuTable.Count + 1, (str, fn)); }