private void BuildFileMenuView(UIFrameworkDefinition uiDef)
        {
            UIFileMenuView mv = uiDef.UIFileMenu;

            if (mv.MenuItems == null || mv.MenuItems.Length == 0)
            {
                return;
            }
            _fileMenuView                      = new RadRibbonBarBackstageView();
            _fileMenuView.Text                 = "开始";
            _fileMenuView.ItemClicked         += new EventHandler <BackstageItemEventArgs>(_fileMenuView_ItemClicked);
            _fileMenuView.BackstageViewOpened += new EventHandler(_fileMenuView_BackstageViewOpened);
            _fileMenuView.BackstageViewClosed += new EventHandler(_fileMenuView_BackstageViewClosed);
            (_session.SmartWindowManager.MainForm as Form).Controls.Add(_fileMenuView);
            _radRibbonBar.RibbonBarElement.Text = "文件";
            _radRibbonBar.BackstageControl      = _fileMenuView;


            Font btnItemFont = new Font("微软雅黑", 10.5f);

            foreach (UIMenuItem item in mv.MenuItems)
            {
                if (!string.IsNullOrEmpty(item.Provider))
                {
                    BackstageViewPage page  = new BackstageViewPage();
                    IUIProvider       uiprd = item.ContentOfUIProvider.Control as IUIProvider;
                    if (uiprd != null)
                    {
                        page.Controls.Add(uiprd.Content as Control);
                        (uiprd as IUIProvider).Init(_session);
                        if (uiprd is IRecentFileContainer)
                        {
                            _recentFileContainer = uiprd as IRecentFileContainer;
                            _recentFileContainer.SetFileMenView(_fileMenuView);
                        }
                    }
                    BackstageTabItem tabPage = new BackstageTabItem(item.Text);
                    tabPage.Margin = new Padding(3, 3, 3, 3);
                    tabPage.Font   = btnItemFont;
                    tabPage.Page   = page;
                    _fileMenuView.Controls.Add(page);
                    _fileMenuView.Items.Add(tabPage);
                }
                else
                {
                    BackstageButtonItem fileMenuItem = new BackstageButtonItem(item.Text);
                    fileMenuItem.Margin = new Padding(3, 3, 3, 3);
                    fileMenuItem.Font   = btnItemFont;
                    fileMenuItem.Tag    = item.Identify;
                    fileMenuItem.Click += new EventHandler(fileMenuItem_Click);
                    Image img = GetImage(item.Image);
                    if (img != null)
                    {
                        fileMenuItem.Image = img;
                    }
                    _fileMenuView.Items.Add(fileMenuItem);
                }
            }
        }
Exemple #2
0
 private void CreateUI()
 {
     error = "CreateUI";
     _startProgress.PrintStartInfo("正在加载界面元数据......");
     _uiDefinition = new UIFrameworkDefinition();
     _startProgress.PrintStartInfo("正在创建工具栏......");
     CreateRibbonBar();
     _startProgress.PrintStartInfo("正在创建视窗区......");
     CreateRadDock();
     _startProgress.PrintStartInfo("正在创建会话......");
     CreateSession();
     LayoutDataFrameInitlializer.Init();
     _startProgress.PrintStartInfo("加载界面组件......");
     LoadUIFromXml();
     SetTileInfo();
 }
 private void BuildTab(UIFrameworkDefinition uidef)
 {
     _uiDef = uidef;
     foreach (UITab uitab in uidef.UITabs)
     {
         RibbonTab tab = null;
         //load ribbontab from single assembly
         if (uitab.ContentOfUIProvider != null && uitab.ContentOfUIProvider.Control != null)
         {
             tab     = (RibbonTab)(uitab.ContentOfUIProvider.Control as IUIProvider).Content;
             tab.Tag = uitab.ContentOfUIProvider.Control as IUIProvider;
             (tab.Tag as IUIProvider).Init(_session);
             if (!string.IsNullOrEmpty(uitab.Text))
             {
                 tab.Text = uitab.Text;
             }
             TryLoadItemsOfTab(uidef, uitab, tab);//支持在UIProvider的Tab下的子节点
         }
         else//create ribbontab by xml
         {
             tab      = new RibbonTab();
             tab.Text = uitab.Text;
             tab.Name = uitab.Name;
             tab.Tag  = uitab;
             TryLoadItemsOfTab(uidef, uitab, tab);
         }
         //
         Font font = uidef.GetFont("tabfont");
         if (font != null)
         {
             tab.Font = font;
         }
         tab.Click += new EventHandler(tab_Click);
         //
         _tabs.Add(tab.Text, new List <RadItem>(tab.Items.ToArray()));
         if (tab.Text != "开始")
         {
             tab.Items.Clear();
         }
         else
         {
             _currentTab = tab;
         }
         _radRibbonBar.CommandTabs.Add(tab);
     }
 }
 private void TryLoadItemsOfTab(UIFrameworkDefinition uidef, UITab uitab, RibbonTab tab)
 {
     if (uitab.Children == null)
     {
         return;
     }
     foreach (UIItem it in uitab.Children)
     {
         if (it is UICommandGroup)
         {
             RadRibbonBarGroup group = GetRadRibbonBarGroup(it as UICommandGroup);
             if (group != null)
             {
                 tab.Items.Add(group);
                 if (!it.Visible)
                 {
                     group.Visibility = ElementVisibility.Collapsed;
                 }
             }
         }
     }
 }
 public UIFrameworkBuilder(ISmartSession session, UIFrameworkDefinition uiDef)
 {
     _uiDef              = uiDef;
     _session            = session;
     _buttonClickHandler = new EventHandler(button_Click);
 }