Exemple #1
0
        /// <summary>
        /// 闯将菜单分组
        /// </summary>
        /// <param name="navControl"></param>
        /// <param name="navFrame"></param>
        /// <param name="menuGroups"></param>
        void CreateMenuGroup(DevExpress.XtraNavBar.NavBarControl navControl, DevExpress.XtraBars.Navigation.NavigationFrame navFrame, List <MenuGroup> menuGroups)
        {
            DevExpress.XtraGrid.Views.Tile.TileView aaa = new DevExpress.XtraGrid.Views.Tile.TileView();
            foreach (var item in menuGroups)
            {
                //Mybug 需要先检查是否已存在同名组,无则生成

                var navBarGroupTemp = new DevExpress.XtraNavBar.NavBarGroup();
                navBarGroupTemp.Caption  = item.Name;
                navBarGroupTemp.Expanded = true;
                navControl.Groups.Add(navBarGroupTemp);
                CreateMenu(navFrame, navBarGroupTemp, item.MenuItems);
            }
        }
Exemple #2
0
        /// <summary>
        /// 创建菜单
        /// </summary>
        /// <param name="navFrame"></param>
        /// <param name="barGroup"></param>
        /// <param name="menuItems"></param>
        void CreateMenu(DevExpress.XtraBars.Navigation.NavigationFrame navFrame, DevExpress.XtraNavBar.NavBarGroup barGroup, List <MenuItem> menuItems)
        {
            Stopwatch sw = new Stopwatch();

            foreach (var item in menuItems)
            {
                DevExpress.XtraBars.Navigation.NavigationPage navPageTemp = new DevExpress.XtraBars.Navigation.NavigationPage();
                navPageTemp.Name    = "";
                navPageTemp.Caption = item.Name;

                navFrame.Controls.Add(navPageTemp);
                navFrame.Pages.Add(navPageTemp);

                DevExpress.XtraNavBar.NavBarItem navbarTemp = new DevExpress.XtraNavBar.NavBarItem()
                {
                    Caption = item.Name
                };

                navbarTemp.LinkClicked += (s, e) =>
                {
                    sw.Restart();
                    //初次点击实例化
                    if (item.ControlType != null)
                    {
                        if (item.View == null)
                        {
                            UserControl intance = (UserControl)item.ControlType.Assembly.CreateInstance(item.ControlType.FullName);
                            item.View = intance;
                            navPageTemp.Controls.Add(item.View);
                            item.View.Dock     = DockStyle.Fill;
                            item.View.Location = new System.Drawing.Point(0, 0);
                            System.Diagnostics.Debug.WriteLine($"临时生成了view:{item.Name}");
                        }
                    }

                    navFrame.SelectedPage = (DevExpress.XtraBars.Navigation.INavigationPage)navFrame.Pages.SingleOrDefault(x => x.Caption == item.Name);
                    sw.Stop();
                    System.Diagnostics.Debug.WriteLine($"创建或打开view:{item.Name}耗时:{sw.Elapsed}");
                };
                barGroup.ItemLinks.Add(navbarTemp);
            }
        }