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

  1. MenuItem mnuInvoices = new MenuItem();
  2. mnuInvoices.Header = "Invoice";
  3. mnuInvoices.Height = 50;
  4. this.mnuMain.Items.Add(mnuInvoices);
Step 4: Create Sub Menu
  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

  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