//internal static void ReLoadMenu(RibbonControl ribbon)
 //{
 //    menus = null;
 //    LoadMenu(ribbon);
 //}
 internal static void LoadMenu(RibbonControl ribbon)
 {
     if (isloadmenu)
         return;
     if (FixItems == null)
         FixItems = ribbon.Items.Cast<BarItem>().ToArray();
     if (menus == null)
         menus = ServiceProxyFactory.Create<IMenuService>().GetAllEntity();
     ribbon.Pages.Clear();
     for (int i = ribbon.Items.Count - 1; i >= 0; i--)
     {
         if (!FixItems.Contains(ribbon.Items[i]))
             ribbon.Items.Remove(ribbon.Items[i]);
     }
     //ribbon.Items.Clear();
     List<RibbonPageHolder> ribbonpageholders = new List<RibbonPageHolder>();
     var rpageEntitys = menus.Where(t => t.MenuControl.ToLower() == "ribbonpage").ToList();
     foreach (var rpageEntity in rpageEntitys)
     {
         RibbonPageHolder ribbonpageholder = ConvertMenuEntityToRibbonPage(rpageEntity);
         if (ribbonpageholder != null)
         {
             CreateRibbonPageGroupFromMenuEntity(ribbon, ribbonpageholder, rpageEntity);
         }
         ribbonpageholders.Add(ribbonpageholder);
     }
     var ribbonpages = ribbonpageholders.OrderBy(t => t.Order).Select(t => t.RibbonPage).ToArray();
     ribbon.Invoke(new Action(() =>
     {
         ribbon.Pages.AddRange(ribbonpages);
     }));
     isloadmenu = true;
 }