Click here to Skip to main content
15,887,746 members
Articles / Desktop Programming / XAML

Silverlight Menu4U

Rate me:
Please Sign up or sign in to vote.
4.90/5 (59 votes)
14 Aug 2011CPOL11 min read 120.1K   4.1K   85  
A new Silverlight menu with styling and templating.
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Collections.Generic;
using Silverlight.Controls;
using System.Collections.ObjectModel;

namespace Menu4UDemo
{
    public class MenuHelper
    {
        public static ObservableCollection<object> CreateSimpleMenu()
        {
            ObservableCollection<object> menuItems = new ObservableCollection<object>();

            var i1 = new MenuItem("Item 1");
            var i11 = new MenuItem("Item 1.1");
            var i12 = new MenuItem("Item 1.2");
            var i13 = new MenuItem("Item 1.3");

            i1.Children.Add(i11);
            i1.Children.Add(i12);
            i1.Children.Add(i13);

            var i131 = new MenuItem("Item 1.3.1");
            var i132 = new MenuItem("Item 1.3.2");

            i13.Children.Add(i131);
            i13.Children.Add(i132);

            var i2 = new MenuItem("Item 2");
            var i21 = new MenuItem("Item 2.1");
            var i22 = new MenuItem("Item 2.2");
            var i23 = new MenuItem("Item 2.3");

            i2.Children.Add(i21);
            i2.Children.Add(i22);
            i2.Children.Add(i23);

            var i3 = new MenuItem("Item 3");
            var i31 = new MenuItem("Item 3.1");
            var i32 = new MenuItem("Item 3.2");
            var i33 = new MenuItem("Item 3.3");

            i3.Children.Add(i31);
            i3.Children.Add(i32);
            i3.Children.Add(i33);

            menuItems.Add(i1);
            menuItems.Add(i2);
            menuItems.Add(i3);

            return menuItems;
        }

        public static ObservableCollection<object> CreateHPMenu()
        {
            var menu = new ObservableCollection<object>();
            var mnuStudents = new MenuItem("Students"); mnuStudents.Command = new SimpleCommand(); menu.Add(mnuStudents);
            var mnuHarry = new MenuItem()
            {
                Text = "Harry Potter",
                Description = "Harry Potter (July 31st 1980-present) is a hero whose destiny is to vanquish the evil Lord Voldemort (nee Tom Riddle), who has been trying to murder Harry since he was a baby.",
                Command = new SimpleCommand(),
                IconUrl = @"/Images/Harry.jpg"
            };
            mnuStudents.Children.Add(mnuHarry);
            var mnuHermione = new MenuItem()
            {
                Text = "Hermione Granger",
                Description = "Hermione Jean Granger is the extremely smart and clever best friend of Harry Potter.",
                Command = new SimpleCommand(),
                IconUrl = @"/Images/Hermione.png"
            };
            mnuStudents.Children.Add(mnuHermione);

            var mnuRon = new MenuItem()
            {
                Text = "Ron Weasley",
                Description = "Ron Weasley (March 1, 1980-Present) is Harry Potter's first and best friend, his second, his Wheezey, the thing he'd miss most.",
                Command = new SimpleCommand(),
                IconUrl = @"/Images/Ron.png"
            };
            mnuStudents.Children.Add(mnuRon);

            var mnuTeachers = new MenuItem("Teachers"); mnuTeachers.Command = new SimpleCommand(); menu.Add(mnuTeachers);
            var mnuDumbledore = new MenuItem()
            {
                Text = "Albus Dumbledore",
                Description = "A grandfatherly figure to Harry Potter, Hogwarts' Headmaster Albus Dumbledore is the only wizard Lord Voldemort ever feared (which makes sense, as Dumbledore was one of Voldemort's teachers at Hogwarts).",
                Command = new SimpleCommand(),
                IconUrl = @"/Images/Dumbledore.jpg"
            };
            mnuTeachers.Children.Add(mnuDumbledore);

            var minervaCommand = new SimpleCommand()
            {
                CanExecuteDelegate = new Predicate<object>(t => true),
                ExecuteDelegate = new Action<object>(o => MessageBox.Show("You clicked Minerva!"))
            };

            var mnuMinerva = new MenuItem()
            {
                Text = "Minerva McGonagal",
                Description = "Minerva McGonagall is the Deputy Headmistress of Hogwarts School of Witchcraft and Wizardy, Professor of Transfiguration and the Head of the Gryffindor House in Harry Potter -film series, based on J.K. Rowling's books.",
                Command = minervaCommand,
                IconUrl = @"/Images/Minerva.jpg"
            };
            mnuTeachers.Children.Add(mnuMinerva);
            var mnuSnape = new MenuItem()
            {
                Text = "Severus Snape",
                Description = "Ten years later, Harry would arrive at Hogwarts where Severus was installed the past ten years as the Potions Master.",
                Command = new SimpleCommand(),
                IconUrl = @"/Images/Snape.jpg"
            };
            mnuTeachers.Children.Add(mnuSnape);

            return menu;
        }

        public static ObservableCollection<object> CreateVSMenu()
        {
            MenuItem mnuCopy = null;
            MenuItem mnuPaste = null;

            var menu = new ObservableCollection<object>();
            var mnuFile = new MenuItem("File"); mnuFile.Command = new SimpleCommand(); menu.Add(mnuFile);
            var mnuNewProject = new MenuItem("New Project..."); mnuNewProject.Command = new SimpleCommand(); mnuFile.Children.Add(mnuNewProject);
            var mnuNewWebSite = new MenuItem("New Web Site..."); mnuNewWebSite.Command = new SimpleCommand(); mnuFile.Children.Add(mnuNewWebSite);
            var mnuNewFile = new MenuItem("New File..."); mnuNewFile.Command = new SimpleCommand(); mnuFile.Children.Add(mnuNewFile);
            var mnuSeparator1 = new MenuItem("-"); mnuSeparator1.Command = new SimpleCommand(); mnuFile.Children.Add(mnuSeparator1);
            var mnuOpenProject = new MenuItem("Open Project..."); mnuOpenProject.Command = new SimpleCommand(); mnuFile.Children.Add(mnuOpenProject);
            var mnuOpenWebSite = new MenuItem("Open Web Site..."); mnuOpenWebSite.Command = new SimpleCommand(); mnuFile.Children.Add(mnuOpenWebSite);
            var mnuOpenFile = new MenuItem("Open File..."); mnuOpenFile.Command = new SimpleCommand(); mnuFile.Children.Add(mnuOpenFile);
            var mnuSeparator2 = new MenuItem("-"); mnuSeparator2.Command = new SimpleCommand(); mnuFile.Children.Add(mnuSeparator2);
            var mnuAdd = new MenuItem("Add"); mnuFile.Children.Add(mnuAdd);

            var mnuNewProject2 = new MenuItem("New Project..."); mnuNewProject2.Command = new SimpleCommand(); mnuFile.Children.Add(mnuNewProject2);

            var mnuNewASPNETProject = new MenuItem("New ASP.NET Project"); mnuNewASPNETProject.Command = new SimpleCommand(); mnuNewProject2.Children.Add(mnuNewASPNETProject);
            var mnuNewSilverlightProject = new MenuItem("New Silverlight Project"); mnuNewSilverlightProject.Command = new SimpleCommand(); mnuNewProject2.Children.Add(mnuNewSilverlightProject);

            var mnuNewWebSite2 = new MenuItem("New Web Site..."); mnuNewWebSite2.Command = new SimpleCommand(); mnuFile.Children.Add(mnuNewWebSite2);
            var mnuSeparator11 = new MenuItem("-"); mnuSeparator11.Command = new SimpleCommand(); mnuFile.Children.Add(mnuSeparator11);
            var mnuExistingProject = new MenuItem("Existing Project..."); mnuExistingProject.Command = new SimpleCommand(); mnuFile.Children.Add(mnuExistingProject);

            var mnuExistingWebSite = new MenuItem("Existing Web Site..."); mnuExistingWebSite.Command = new SimpleCommand(); mnuFile.Children.Add(mnuExistingWebSite);

            var mnuSeparator3 = new MenuItem("-"); mnuSeparator3.Command = new SimpleCommand(); mnuFile.Children.Add(mnuSeparator3);
            var mnuClose = new MenuItem("Close"); mnuClose.Command = new SimpleCommand(); mnuFile.Children.Add(mnuClose);
            var mnuCloseSolution = new MenuItem("Close Solution"); mnuCloseSolution.Command = new SimpleCommand(); mnuFile.Children.Add(mnuCloseSolution);
            var mnuSeparator4 = new MenuItem("-"); mnuSeparator4.Command = new SimpleCommand(); mnuFile.Children.Add(mnuSeparator4);
            var mnuSave = new MenuItem("Save"); mnuSave.Command = new SimpleCommand(); mnuFile.Children.Add(mnuSave);
            var mnuSaveAs = new MenuItem("Save As..."); mnuSaveAs.Command = new SimpleCommand(); mnuFile.Children.Add(mnuSaveAs);
            var mnuSaveAll = new MenuItem("Save All"); mnuSaveAll.Command = new SimpleCommand(); mnuFile.Children.Add(mnuSaveAll);
            var mnuExportTemplate = new MenuItem("Export Template..."); mnuExportTemplate.Command = new SimpleCommand(); mnuFile.Children.Add(mnuExportTemplate);
            var mnuSeparator5 = new MenuItem("-"); mnuSeparator5.Command = new SimpleCommand(); mnuFile.Children.Add(mnuSeparator5);
            var mnuPageSetup = new MenuItem("Page Setup..."); mnuPageSetup.Command = new SimpleCommand(); mnuFile.Children.Add(mnuPageSetup);
            var mnuPrint = new MenuItem("Print..."); mnuPrint.Command = new SimpleCommand(); mnuFile.Children.Add(mnuPrint);
            var mnuSeparator6 = new MenuItem("-"); mnuSeparator6.Command = new SimpleCommand(); mnuFile.Children.Add(mnuSeparator6);
            var mnuRecentFiles = new MenuItem("Recent Files"); mnuRecentFiles.Command = new SimpleCommand(); mnuFile.Children.Add(mnuRecentFiles);
            var mnuRecentProjectsandSolutions = new MenuItem("Recent Projects and Solutions"); mnuRecentProjectsandSolutions.Command = new SimpleCommand(); mnuFile.Children.Add(mnuRecentProjectsandSolutions);
            var mnuSeparator7 = new MenuItem("-"); mnuSeparator7.Command = new SimpleCommand(); mnuFile.Children.Add(mnuSeparator7);
            var mnuExit = new MenuItem("Exit"); mnuExit.Command = new SimpleCommand(); mnuFile.Children.Add(mnuExit);

            var mnuEdit = new MenuItem("Edit"); mnuEdit.Command = new SimpleCommand(); menu.Add(mnuEdit);
            var mnuUndo = new MenuItem("Undo"); mnuUndo.Command = new SimpleCommand(); mnuEdit.Children.Add(mnuUndo);
            var mnuRedo = new MenuItem("Redo"); mnuRedo.IsEnabled = false; mnuRedo.Command = new SimpleCommand(); mnuEdit.Children.Add(mnuRedo);
            var mnuSeparator8 = new MenuItem("-"); mnuSeparator8.Command = new SimpleCommand(); mnuEdit.Children.Add(mnuSeparator8);
            var mnuCut = new MenuItem("Cut"); mnuCut.Command = new SimpleCommand(); mnuEdit.Children.Add(mnuCut);
            mnuCut.IconUrl = @"/Images/mnuCut.png";
            mnuCut.ShortCut = "Ctrl+X";

            mnuCopy = new MenuItem("Copy");
            mnuCopy.Command = new SimpleCommand()
            {
                ExecuteDelegate = new Action<object>(o => { mnuPaste.IsEnabled = true; })
            };

            mnuEdit.Children.Add(mnuCopy);
            mnuCopy.IconUrl = @"/Images/mnuCopy.png";
            mnuCopy.ShortCut = "Ctrl+C";

            mnuPaste = new MenuItem("Paste");
            mnuPaste.Command = new SimpleCommand()
            {
                ExecuteDelegate = new Action<object>(o => { mnuPaste.IsEnabled = false; })
            };
            mnuEdit.Children.Add(mnuPaste);
            mnuPaste.IconUrl = @"/Images/mnuPaste.png";
            mnuPaste.ShortCut = "Ctrl+V";
            mnuPaste.IsEnabled = false;

            var mnuDelete = new MenuItem("Delete"); mnuDelete.Command = new SimpleCommand(); mnuEdit.Children.Add(mnuDelete);
            mnuDelete.IconUrl = @"/Images/mnuDelete.png";
            mnuDelete.ShortCut = "Del";
            var mnuSeparator9 = new MenuItem("-"); mnuSeparator9.Command = new SimpleCommand(); mnuEdit.Children.Add(mnuSeparator9);
            var mnuSelectAll = new MenuItem("Select All"); mnuSelectAll.Command = new SimpleCommand(); mnuEdit.Children.Add(mnuSelectAll);
            var mnuSeparator10 = new MenuItem("-"); mnuSeparator10.Command = new SimpleCommand(); mnuEdit.Children.Add(mnuSeparator10);
            var mnuQuickFind = new MenuItem("Quick Find"); mnuQuickFind.Command = new SimpleCommand(); mnuEdit.Children.Add(mnuQuickFind);
            var mnuQuickReplace = new MenuItem("Quick Replace"); mnuQuickReplace.Command = new SimpleCommand(); mnuEdit.Children.Add(mnuQuickReplace);

            var mnuView = new MenuItem("View"); mnuView.Command = new SimpleCommand(); menu.Add(mnuView);
            var mnuStartPage = new MenuItem("Start Page"); mnuStartPage.Command = new SimpleCommand(); mnuView.Children.Add(mnuStartPage);
            var mnuOtherWindows = new MenuItem("Other Windows"); mnuOtherWindows.Command = new SimpleCommand(); mnuView.Children.Add(mnuOtherWindows);

            var mnuDatabaseExplorer = new MenuItem("Database Explorer"); mnuDatabaseExplorer.Command = new SimpleCommand(); mnuOtherWindows.Children.Add(mnuDatabaseExplorer);
            var mnuErrorList = new MenuItem("Error List"); mnuErrorList.Command = new SimpleCommand(); mnuOtherWindows.Children.Add(mnuErrorList);
            var mnuPropertiesWindow = new MenuItem("Properties Window"); mnuPropertiesWindow.Command = new SimpleCommand(); mnuOtherWindows.Children.Add(mnuPropertiesWindow);
            var mnuSolutionExplorer = new MenuItem("Solution Explorer"); mnuSolutionExplorer.Command = new SimpleCommand(); mnuOtherWindows.Children.Add(mnuSolutionExplorer);
            var mnuToolbox = new MenuItem("Toolbox"); mnuToolbox.Command = new SimpleCommand(); mnuOtherWindows.Children.Add(mnuToolbox);
            var mnuSeparator30 = new MenuItem("-"); mnuSeparator30.Command = new SimpleCommand(); mnuOtherWindows.Children.Add(mnuSeparator30);
            var mnuWebBrowser = new MenuItem("Web Browser"); mnuWebBrowser.Command = new SimpleCommand(); mnuOtherWindows.Children.Add(mnuWebBrowser);
            var mnuSeparator31 = new MenuItem("-"); mnuSeparator31.Command = new SimpleCommand(); mnuOtherWindows.Children.Add(mnuSeparator31);
            var mnuFindResults1 = new MenuItem("Find Results 1"); mnuFindResults1.Command = new SimpleCommand(); mnuOtherWindows.Children.Add(mnuFindResults1);

            var mnuSeparator12 = new MenuItem("-"); mnuSeparator12.Command = new SimpleCommand(); mnuView.Children.Add(mnuSeparator12);
            var mnuToolbars = new MenuItem("Toolbars"); mnuToolbars.Command = new SimpleCommand(); mnuView.Children.Add(mnuToolbars);

            CreateCheckableMenuItem(mnuToolbars, "Build", true);
            CreateCheckableMenuItem(mnuToolbars, "Data Design");
            CreateCheckableMenuItem(mnuToolbars, "Database Diagram", true);
            CreateCheckableMenuItem(mnuToolbars, "Debug");
            CreateCheckableMenuItem(mnuToolbars, "Formatting", true);
            CreateCheckableMenuItem(mnuToolbars, "HTML Source Editing", true);
            CreateCheckableMenuItem(mnuToolbars, "Layout", true);
            CreateCheckableMenuItem(mnuToolbars, "Query Designer");
            CreateCheckableMenuItem(mnuToolbars, "Standard", true);
            CreateCheckableMenuItem(mnuToolbars, "Style Sheet", true);
            CreateCheckableMenuItem(mnuToolbars, "Table Designer");
            CreateCheckableMenuItem(mnuToolbars, "Text Editor");
            CreateCheckableMenuItem(mnuToolbars, "View Designer", true);
            CreateCheckableMenuItem(mnuToolbars, "Web Browser");
            CreateCheckableMenuItem(mnuToolbars, "Web One Click Publish");
            var mnuSeparator32 = new MenuItem("-"); mnuToolbars.Children.Add(mnuSeparator32);
            CreateCheckableMenuItem(mnuToolbars, "Customize");

            var mnuFullScreen = new MenuItem("Full Screen"); mnuFullScreen.Command = new SimpleCommand(); mnuView.Children.Add(mnuFullScreen);
            var mnuSeparator13 = new MenuItem("-"); mnuSeparator13.Command = new SimpleCommand(); mnuView.Children.Add(mnuSeparator13);
            var mnuPropertyPages = new MenuItem("Property Pages"); mnuPropertyPages.Command = new SimpleCommand(); mnuView.Children.Add(mnuPropertyPages);

            var mnuProject = new MenuItem("Project"); mnuProject.Command = new SimpleCommand(); menu.Add(mnuProject);
            var mnuAddClass = new MenuItem("Add Class..."); mnuAddClass.Command = new SimpleCommand(); mnuProject.Children.Add(mnuAddClass);
            var mnuAddNewItem = new MenuItem("Add New Item..."); mnuAddNewItem.Command = new SimpleCommand(); mnuProject.Children.Add(mnuAddNewItem);

            var mnuAddExistingItem = new MenuItem("Add Existing Item"); mnuAddExistingItem.Command = new SimpleCommand(); mnuProject.Children.Add(mnuAddExistingItem);
            var mnuSeparator14 = new MenuItem("-"); mnuSeparator14.Command = new SimpleCommand(); mnuProject.Children.Add(mnuSeparator14);
            var mnuAddReference = new MenuItem("Add Reference"); mnuAddReference.Command = new SimpleCommand(); mnuProject.Children.Add(mnuAddReference);
            var mnuAddServiceReference = new MenuItem("Add Service Reference..."); mnuAddServiceReference.Command = new SimpleCommand(); mnuProject.Children.Add(mnuAddServiceReference);
            var mnuSetasStartUpProject = new MenuItem("Set as StartUp Project"); mnuSetasStartUpProject.Command = new SimpleCommand(); mnuProject.Children.Add(mnuSetasStartUpProject);
            var mnuProjectDependencies = new MenuItem("Project Dependencies..."); mnuProjectDependencies.Command = new SimpleCommand(); mnuProject.Children.Add(mnuProjectDependencies);
            var mnuSeparator15 = new MenuItem("-"); mnuSeparator15.Command = new SimpleCommand(); mnuProject.Children.Add(mnuSeparator15);
            var mnuSilverlightMenuProperties = new MenuItem("SilverlightMenu Properties"); mnuSilverlightMenuProperties.Command = new SimpleCommand(); mnuProject.Children.Add(mnuSilverlightMenuProperties);

            var mnuDebug = new MenuItem("Debug"); mnuDebug.Command = new SimpleCommand(); menu.Add(mnuDebug);
            var mnuStartDebugging = new MenuItem("Start Debugging"); mnuStartDebugging.Command = new SimpleCommand(); mnuDebug.Children.Add(mnuStartDebugging);
            var mnuSeparator16 = new MenuItem("-"); mnuSeparator16.Command = new SimpleCommand(); mnuDebug.Children.Add(mnuSeparator16);
            var mnuBuildSilverlightMenu = new MenuItem("Build SilverlightMenu"); mnuBuildSilverlightMenu.Command = new SimpleCommand(); mnuDebug.Children.Add(mnuBuildSilverlightMenu);
            var mnuSeparator17 = new MenuItem("-"); mnuSeparator17.Command = new SimpleCommand(); mnuDebug.Children.Add(mnuSeparator17);
            var mnuStepInto = new MenuItem("Step Into"); mnuStepInto.Command = new SimpleCommand(); mnuDebug.Children.Add(mnuStepInto);
            var mnuStepOver = new MenuItem("Step Over"); mnuStepOver.Command = new SimpleCommand(); mnuDebug.Children.Add(mnuStepOver);
            var mnuSeparator18 = new MenuItem("-"); mnuSeparator18.Command = new SimpleCommand(); mnuDebug.Children.Add(mnuSeparator18);
            var mnuWindows = new MenuItem("Windows"); mnuWindows.Command = new SimpleCommand(); mnuDebug.Children.Add(mnuWindows);
            var mnuImmediate = new MenuItem("Immediate"); mnuImmediate.Command = new SimpleCommand(); mnuDebug.Children.Add(mnuImmediate);
            var mnuLocals = new MenuItem("Locals"); mnuLocals.Command = new SimpleCommand(); mnuDebug.Children.Add(mnuLocals);
            var mnuSeparator33 = new MenuItem("-"); mnuSeparator33.Command = new SimpleCommand(); mnuDebug.Children.Add(mnuSeparator33);
            var mnuCallStack = new MenuItem("Call Stack"); mnuCallStack.Command = new SimpleCommand(); mnuDebug.Children.Add(mnuCallStack);

            var mnuSeparator19 = new MenuItem("-"); mnuSeparator19.Command = new SimpleCommand(); mnuDebug.Children.Add(mnuSeparator19);
            var mnuClearAllDataTips = new MenuItem("Clear All DataTips"); mnuClearAllDataTips.Command = new SimpleCommand(); mnuDebug.Children.Add(mnuClearAllDataTips);
            var mnuExportDataTips = new MenuItem("Export DataTips..."); mnuExportDataTips.Command = new SimpleCommand(); mnuDebug.Children.Add(mnuExportDataTips);
            var mnuImportDataTips = new MenuItem("Import DataTips..."); mnuImportDataTips.Command = new SimpleCommand(); mnuDebug.Children.Add(mnuImportDataTips);
            var mnuSeparator20 = new MenuItem("-"); mnuSeparator20.Command = new SimpleCommand(); mnuDebug.Children.Add(mnuSeparator20);
            var mnuOptionsandSettings = new MenuItem("Options and Settings..."); mnuOptionsandSettings.Command = new SimpleCommand(); mnuDebug.Children.Add(mnuOptionsandSettings);

            var mnuData = new MenuItem("Data"); mnuData.IsEnabled = false; mnuData.Command = new SimpleCommand(); menu.Add(mnuData);
            var mnuShowDataSources = new MenuItem("Show Data Sources"); mnuShowDataSources.Command = new SimpleCommand(); mnuData.Children.Add(mnuShowDataSources);
            var mnuAddNewDataSource = new MenuItem("Add New Data Source..."); mnuAddNewDataSource.Command = new SimpleCommand(); mnuData.Children.Add(mnuAddNewDataSource);

            var mnuTools = new MenuItem("Tools"); mnuTools.Command = new SimpleCommand(); menu.Add(mnuTools);
            var mnuConnecttoDatabase = new MenuItem("Connect to Database..."); mnuConnecttoDatabase.Command = new SimpleCommand(); mnuTools.Children.Add(mnuConnecttoDatabase);
            var mnuSeparator21 = new MenuItem("-"); mnuSeparator21.Command = new SimpleCommand(); mnuTools.Children.Add(mnuSeparator21);
            var mnuExtensionManager = new MenuItem("Extension Manager..."); mnuExtensionManager.Command = new SimpleCommand(); mnuTools.Children.Add(mnuExtensionManager);
            var mnuSeparator22 = new MenuItem("-"); mnuSeparator22.Command = new SimpleCommand(); mnuTools.Children.Add(mnuSeparator22);
            var mnuSettings = new MenuItem("Settings"); mnuSettings.Command = new SimpleCommand(); mnuTools.Children.Add(mnuSettings);
            var mnuBasicSettings = new MenuItem("Basic Settings"); mnuBasicSettings.Command = new SimpleCommand(); mnuTools.Children.Add(mnuBasicSettings);
            var mnuCodeOnly = new MenuItem("Code Only"); mnuCodeOnly.Command = new SimpleCommand(); mnuTools.Children.Add(mnuCodeOnly);
            var mnuExpertSettings = new MenuItem("Expert Settings"); mnuExpertSettings.Command = new SimpleCommand(); mnuTools.Children.Add(mnuExpertSettings);
            var mnuSeparator34 = new MenuItem("-"); mnuSeparator34.Command = new SimpleCommand(); mnuTools.Children.Add(mnuSeparator34);
            var mnuReset = new MenuItem("Reset..."); mnuReset.Command = new SimpleCommand(); mnuTools.Children.Add(mnuReset);
            var mnuSeparator35 = new MenuItem("-"); mnuSeparator35.Command = new SimpleCommand(); mnuTools.Children.Add(mnuSeparator35);
            var mnuImportandExportSettings = new MenuItem("Import and Export Settings..."); mnuImportandExportSettings.Command = new SimpleCommand(); mnuTools.Children.Add(mnuImportandExportSettings);

            var mnuCustomize = new MenuItem("Customize..."); mnuCustomize.Command = new SimpleCommand(); mnuTools.Children.Add(mnuCustomize);
            var mnuOptions = new MenuItem("Options..."); mnuOptions.Command = new SimpleCommand(); mnuTools.Children.Add(mnuOptions);

            var mnuWindow = new MenuItem("Window"); mnuWindow.Command = new SimpleCommand(); menu.Add(mnuWindow);
            var mnuSplit = new MenuItem("Split"); mnuSplit.Command = new SimpleCommand(); mnuWindow.Children.Add(mnuSplit);
            var mnuSeparator27 = new MenuItem("-"); mnuSeparator27.Command = new SimpleCommand(); mnuWindow.Children.Add(mnuSeparator27);
            var mnuFloat = new MenuItem("Float"); mnuFloat.Command = new SimpleCommand(); mnuWindow.Children.Add(mnuFloat);
            var mnuDock = new MenuItem("Dock"); mnuDock.Command = new SimpleCommand(); mnuWindow.Children.Add(mnuDock);
            var mnuDockasTabbedDocument = new MenuItem("Dock as Tabbed Document"); mnuDockasTabbedDocument.Command = new SimpleCommand(); mnuWindow.Children.Add(mnuDockasTabbedDocument);
            var mnuAutoHide = new MenuItem("Auto Hide"); mnuAutoHide.Command = new SimpleCommand(); mnuWindow.Children.Add(mnuAutoHide);
            var mnuHide = new MenuItem("Hide"); mnuHide.Command = new SimpleCommand(); mnuWindow.Children.Add(mnuHide);
            var mnuSeparator28 = new MenuItem("-"); mnuSeparator28.Command = new SimpleCommand(); mnuWindow.Children.Add(mnuSeparator28);
            var mnuAutoHideAll = new MenuItem("Auto Hide All"); mnuAutoHideAll.Command = new SimpleCommand(); mnuWindow.Children.Add(mnuAutoHideAll);
            var mnuNewHorizontalTabGroup = new MenuItem("New Horizontal Tab Group"); mnuNewHorizontalTabGroup.Command = new SimpleCommand(); mnuWindow.Children.Add(mnuNewHorizontalTabGroup);
            var mnuNewVerticalTabGroup = new MenuItem("New Vertical Tab Group"); mnuNewVerticalTabGroup.Command = new SimpleCommand(); mnuWindow.Children.Add(mnuNewVerticalTabGroup);
            var mnuCloseAllDocuments = new MenuItem("Close All Documents"); mnuCloseAllDocuments.Command = new SimpleCommand(); mnuWindow.Children.Add(mnuCloseAllDocuments);
            var mnuResetWindowLayout = new MenuItem("Reset Window Layout"); mnuResetWindowLayout.Command = new SimpleCommand(); mnuWindow.Children.Add(mnuResetWindowLayout);
            var mnuSeparator29 = new MenuItem("-"); mnuSeparator29.Command = new SimpleCommand(); mnuWindow.Children.Add(mnuSeparator29);
            var mnu1MainPagexaml = new MenuItem("1 MainPage.xaml"); mnu1MainPagexaml.Command = new SimpleCommand(); mnuWindow.Children.Add(mnu1MainPagexaml);
            var mnu2Menucs = new MenuItem("2 Menu.cs"); mnu2Menucs.Command = new SimpleCommand(); mnuWindow.Children.Add(mnu2Menucs);
            var mnu3MenuItemcs = new MenuItem("3 MenuItem.cs"); mnu3MenuItemcs.Command = new SimpleCommand(); mnuWindow.Children.Add(mnu3MenuItemcs);
            var mnu4MainPagexamlcs = new MenuItem("4 MainPage.xaml.cs"); mnu4MainPagexamlcs.Command = new SimpleCommand(); mnuWindow.Children.Add(mnu4MainPagexamlcs);
            var mnu5Appxamlcs = new MenuItem("5 App.xaml.cs"); mnu5Appxamlcs.Command = new SimpleCommand(); mnuWindow.Children.Add(mnu5Appxamlcs);
            var mnuWindows2 = new MenuItem("Windows..."); mnuWindows2.Command = new SimpleCommand(); mnuWindow.Children.Add(mnuWindows2);

            var mnuHelp = new MenuItem("Help"); mnuHelp.Command = new SimpleCommand(); menu.Add(mnuHelp);
            var mnuViewHelp = new MenuItem("View Help"); mnuViewHelp.Command = new SimpleCommand(); mnuHelp.Children.Add(mnuViewHelp);

            var m1 = new MenuItem("aaaa aaa aaa....");

            m1.Command = new SimpleCommand()
            {
                ExecuteDelegate = new Action<object>(o => MessageBox.Show("You clicked AAA."))
            };

            var m2 = new MenuItem("bbb bbb bb...");
            mnuViewHelp.Children.Add(m1);
            mnuViewHelp.Children.Add(m2);

            var mnuManageHelpSettings = new MenuItem("Manage Help Settings"); mnuManageHelpSettings.Command = new SimpleCommand(); mnuHelp.Children.Add(mnuManageHelpSettings);
            var mnuSeparator23 = new MenuItem("-"); mnuSeparator23.Command = new SimpleCommand(); mnuHelp.Children.Add(mnuSeparator23);
            var mnuMSDNForums = new MenuItem("MSDN Forums"); mnuMSDNForums.Command = new SimpleCommand(); mnuHelp.Children.Add(mnuMSDNForums);

            var mnuSeparator24 = new MenuItem("-"); mnuSeparator24.Command = new SimpleCommand(); mnuHelp.Children.Add(mnuSeparator24);
            var mnuSamples = new MenuItem("Samples"); mnuSamples.Command = new SimpleCommand(); mnuHelp.Children.Add(mnuSamples);
            var mnuSeparator25 = new MenuItem("-"); mnuSeparator25.Command = new SimpleCommand(); mnuHelp.Children.Add(mnuSeparator25);
            var mnuCustomerFeedbackOptions = new MenuItem("Customer Feedback Options..."); mnuCustomerFeedbackOptions.Command = new SimpleCommand(); mnuHelp.Children.Add(mnuCustomerFeedbackOptions);
            var mnuRegisterProduct = new MenuItem("Register Product"); mnuRegisterProduct.Command = new SimpleCommand(); mnuHelp.Children.Add(mnuRegisterProduct);
            var mnuCheckforUpdates = new MenuItem("Check for Updates"); mnuCheckforUpdates.Command = new SimpleCommand(); mnuHelp.Children.Add(mnuCheckforUpdates);
            var mnuTechnicalSupport = new MenuItem("Technical Support"); mnuTechnicalSupport.Command = new SimpleCommand(); mnuHelp.Children.Add(mnuTechnicalSupport);
            var mnuOnlinePrivacyStatement = new MenuItem("Online Privacy Statement..."); mnuOnlinePrivacyStatement.Command = new SimpleCommand(); mnuHelp.Children.Add(mnuOnlinePrivacyStatement);
            var mnuSeparator26 = new MenuItem("-"); mnuSeparator26.Command = new SimpleCommand(); mnuHelp.Children.Add(mnuSeparator26);
            var mnuAboutMicrosoftVisualWebDeveloper2010Express = new MenuItem("About Microsoft Visual Web Developer 2010 Express"); mnuAboutMicrosoftVisualWebDeveloper2010Express.Command = new SimpleCommand(); mnuHelp.Children.Add(mnuAboutMicrosoftVisualWebDeveloper2010Express);

            return menu;
        }

        public static ObservableCollection<object> CreateArabicMenu()
        {
            var menu = new ObservableCollection<object>();

            var m1 = new MenuItem("إبحار");
            var m11 = new MenuItem("المواضيع", @"/Images/mnuCut.png"); m1.Children.Add(m11);
            var m12 = new MenuItem("أبجدي", @"/Images/mnuCopy.png"); m1.Children.Add(m12);
            var m13 = new MenuItem("بوابات", @"/Images/mnuPaste.png"); m1.Children.Add(m13);
            var m14 = new MenuItem("مقالة عشوائية", @"/Images/mnuDelete.png"); m1.Children.Add(m14);

            var m2 = new MenuItem("المشاركة والمساعدة");
            var m21 = new MenuItem("اتصل بنا", @"/Images/mnuAddClass.png"); m2.Children.Add(m21);
            var m22 = new MenuItem("بوابة المجتمع", @"/Images/mnuAddExistingItem.png"); m2.Children.Add(m22);

            var m221 = new MenuItem("ماذا يصل هنا"); m22.Children.Add(m221);
            var m222 = new MenuItem("تغييرات ذات علاقة"); m22.Children.Add(m222);

            var m2221 = new MenuItem("مساعدة", @"/Images/mnuAddNewItem.png"); m222.Children.Add(m2221);
            var m2222 = new MenuItem("الميدان", @"/Images/mnuAddNewDataSource.png"); m222.Children.Add(m2222);
            var m2223 = new MenuItem("تبرع", @"/Images/mnuBuildSilverlightMenu.png"); m222.Children.Add(m2223);

            var m223 = new MenuItem("الصفحات الخاصة"); m22.Children.Add(m223);
            var m224 = new MenuItem("نسخة للطباعة"); m22.Children.Add(m224);
            var m225 = new MenuItem("وصلة دائمة"); m22.Children.Add(m225);

            var m23 = new MenuItem("مساعدة", @"/Images/mnuAddNewItem.png"); m2.Children.Add(m23);
            var m24 = new MenuItem("الميدان", @"/Images/mnuAddNewDataSource.png"); m2.Children.Add(m24);
            var m25 = new MenuItem("تبرع", @"/Images/mnuBuildSilverlightMenu.png"); m2.Children.Add(m25);

            var m3 = new MenuItem("صندوق الأدوات");
            var m31 = new MenuItem("ماذا يصل هنا"); m3.Children.Add(m31);
            var m32 = new MenuItem("تغييرات ذات علاقة"); m3.Children.Add(m32);
            var m33 = new MenuItem("الصفحات الخاصة"); m3.Children.Add(m33);
            var m34 = new MenuItem("نسخة للطباعة"); m3.Children.Add(m34);
            var m35 = new MenuItem("وصلة دائمة"); m3.Children.Add(m35);

            menu.Add(m1);
            menu.Add(m2);
            menu.Add(m3);

            return menu;
        }

        static void CreateCheckableMenuItem(MenuItem parent, string text, bool isChecked = false)
        {
            var item = new MenuItem(text);
            item.Command = new SimpleCommand()
            {
                ExecuteDelegate = new Action<object>((o) => { item.IsChecked = !item.IsChecked; })
            };
            item.IsCheckable = true;
            item.IsChecked = isChecked;
            item.IconUrl = @"/Images/Checked.png";
            parent.Children.Add(item);
        }
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Instructor / Trainer Alura Cursos Online
Brazil Brazil

Comments and Discussions