In this document we are discussing about how to generate WPF menu dynamically in visual studio 2012.

Step 1: Create New Project .

wpf application

Step 2: Add Menu Control to The grid.

menu

Step 3: Create Menu

  • Include “System.Windows.Controls” in the project.
  • Create object for Menuitem.
  • Edit the properties of MenuItem.
  • Add Menu item to the Main Menu.
  1. MenuItem mnuInvoices = new MenuItem();
  2. mnuInvoices.Header = "Invoice";
  3. mnuInvoices.Height = 50;
  4. this.mnuMain.Items.Add(mnuInvoices);
Step 4: Create Sub Menu
  • Create object for Menuitem.
  • Edit the properties of MenuItem.
  • And add the submenu object to the corresponding MenuItem.
  1. MenuItem mnuInvoices = new MenuItem();
  2. mnuInvoices.Header = "Invoice";
  3. mnuInvoices.Height = 50;
  4. this.mnuMain.Items.Add(mnuInvoices);
  5. if (ObjUsr.UserTypeid == 1)
  6. {
  7. MenuItem mnuDeleteInvoice = new MenuItem();
  8. mnuDeleteInvoice.Header = "Delete Invoice";
  9. mnuDeleteInvoice.Height = 50;
  10. mnuInvoices.Items.Add(mnuDeleteInvoice);
  11. MenuItem mnuInvoiceStatus = new MenuItem();
  12. mnuInvoiceStatus.Header = "Invoice Status";
  13. mnuInvoiceStatus.Height = 50;
  14. mnuInvoices.Items.Add(mnuInvoiceStatus);
  15. }
  16. else
  17. {
  18. MenuItem mnuInvoiceStatus = new MenuItem();
  19. mnuInvoiceStatus.Header = "Invoice Status";
  20. mnuInvoiceStatus.Height = 50;
  21. mnuInvoices.Items.Add(mnuInvoiceStatus);
  22. }
Step 5: Load Image Icon
  • Create Object of System.Windows.Controls.Image.
  • Assign the “System.Windows.Media.ImageSource” Path to Image Object .
  • Assign the Image object to the “Icon” Property of Menu Items.

  1. Image ObjImage = new Image();
  2. string path = ConfigurationManager.AppSettings["AppPath"].ToString() + "/Images/pic.png";
  3. ObjImage.Source = new BitmapImage(new Uri(path, UriKind.RelativeOrAbsolute));
  4. mnuInvoices.Icon = ObjImage;
menu control

Reference

Uri: http://msdn.microsoft.com/en-us/library/system.uri(v=vs.110).aspx
UriKind : http://www.c-sharpcorner.com/Forums/Thread/242530/
WPF setting a MenuItem.Icon in code