protected override void AfterShellCreated() { base.AfterShellCreated(); //create the main window BankShellWindow bankShellWindow = RootWorkItem.Items.AddNew <BankShellWindow>(); Shell.MainWindow = bankShellWindow; MenuItem fileItem = bankShellWindow.FileMenuItem; RootWorkItem.UIExtensionSites.RegisterSite(UIExtensionConstants.MAINMENU, bankShellWindow.Menu); RootWorkItem.UIExtensionSites.RegisterSite(UIExtensionConstants.MAINSTATUS, bankShellWindow.StatusBar); RootWorkItem.UIExtensionSites.RegisterSite(UIExtensionConstants.FILE, bankShellWindow.Menu); RootWorkItem.UIExtensionSites.RegisterSite(UIExtensionConstants.FILEDROPDOWN, fileItem); // Load the menu structure from App.config UIElementBuilder.LoadFromConfig(RootWorkItem); //add commands that map to WPF commands (the LoadFromConfig method isn't smart enough to do this yet) MenuItem menuItem = new MenuItem(); menuItem.Header = "_Undo"; menuItem.Command = ApplicationCommands.Undo; RootWorkItem.UIExtensionSites["Edit"].Add(menuItem); menuItem = new MenuItem(); menuItem.Header = "_Redo"; menuItem.Command = ApplicationCommands.Redo; RootWorkItem.UIExtensionSites["Edit"].Add(menuItem); RootWorkItem.UIExtensionSites["Edit"].Add(new Separator()); menuItem = new MenuItem(); menuItem.Header = "Cu_t"; menuItem.Command = ApplicationCommands.Cut; RootWorkItem.UIExtensionSites["Edit"].Add(menuItem); menuItem = new MenuItem(); menuItem.Header = "_Copy"; menuItem.Command = ApplicationCommands.Copy; RootWorkItem.UIExtensionSites["Edit"].Add(menuItem); menuItem = new MenuItem(); menuItem.Header = "_Paste"; menuItem.Command = ApplicationCommands.Paste; RootWorkItem.UIExtensionSites["Edit"].Add(menuItem); RootWorkItem.UIExtensionSites["Edit"].Add(new Separator()); menuItem = new MenuItem(); menuItem.Header = "Select _All"; menuItem.Command = ApplicationCommands.SelectAll; RootWorkItem.UIExtensionSites["Edit"].Add(menuItem); //show the main window bankShellWindow.Show(); }
// This method is called just after your shell has been created (the root work item // also exists). Here, you might want to: // - Attach UIElementManagers // - Register the form with a name. // - Register additional workspaces (e.g. a named WindowWorkspace) protected override void AfterShellCreated() { base.AfterShellCreated(); ToolStripMenuItem fileItem = (ToolStripMenuItem)Shell.MainMenuStrip.Items["File"]; RootWorkItem.UIExtensionSites.RegisterSite(UIExtensionConstants.MAINMENU, Shell.MainMenuStrip); RootWorkItem.UIExtensionSites.RegisterSite(UIExtensionConstants.MAINSTATUS, Shell.mainStatusStrip); RootWorkItem.UIExtensionSites.RegisterSite(UIExtensionConstants.FILE, fileItem); RootWorkItem.UIExtensionSites.RegisterSite(UIExtensionConstants.FILEDROPDOWN, fileItem.DropDownItems); // Load the menu structure from App.config UIElementBuilder.LoadFromConfig(RootWorkItem); }
// This method is called just after your shell has been created (the root work item // also exists). Here, you might want to: // - Attach UIElementManagers // - Register the form with a name. // - Register additional workspaces (e.g. a named WindowWorkspace) protected override void AfterShellCreated() { base.AfterShellCreated(); XtraTabbedMdiWorkspace ContentWorkspace = new XtraTabbedMdiWorkspace(Shell); RootWorkItem.Items.Add(ContentWorkspace, WorkspaceNames.ShellContentWorkspace); //RootWorkItem.Items.Add(new MdiWorkspace(Shell), WorkspaceNames.ShellContentWorkspace); RootWorkItem.Items.Add(Shell.NavBarWorkspace, WorkspaceNames.ShellNavBarWorkspace); RootWorkItem.Items.Add(Shell.DockManagerWorkspace, WorkspaceNames.DockManagerWorkspace); RootWorkItem.Items.Add(Shell.DeckWorkspace, WorkspaceNames.DeckWorkspace); RootWorkItem.Workspaces[WorkspaceNames.ShellContentWorkspace].SmartPartActivated += BankShellApplication_SmartPartActivated; RootWorkItem.Workspaces[WorkspaceNames.ShellContentWorkspace].SmartPartClosing += BankShellApplication_SmartPartClosing; #if UseRibbonForm RootWorkItem.UIExtensionSites.RegisterSite(ExtensionSiteNames.Ribbon, Shell.Ribbon); RootWorkItem.UIExtensionSites.RegisterSite(ExtensionSiteNames.MainMenu, Shell.homePage); RootWorkItem.UIExtensionSites.RegisterSite(ExtensionSiteNames.MainStatus, Shell.mainStatusBar); RootWorkItem.UIExtensionSites.RegisterSite(ExtensionSiteNames.RibbonApplicationMenu, new RibbonApplicationMenuUIAdapter(Shell.applicationMenu)); RibbonPageGroup ribbonGroup = new RibbonPageGroup(ExtensionSiteNames.File); RootWorkItem.UIExtensionSites[ExtensionSiteNames.MainMenu].Add <RibbonPageGroup>(ribbonGroup); RootWorkItem.UIExtensionSites.RegisterSite(ExtensionSiteNames.File, ribbonGroup); RootWorkItem.UIExtensionSites.RegisterSite(ExtensionSiteNames.RibbonPageHeader, new RibbonPageHeaderUIAdapter(Shell.Ribbon.PageHeaderItemLinks)); RootWorkItem.UIExtensionSites.RegisterSite(ExtensionSiteNames.RibbonQuickAccessToolbar, new RibbonQuickAccessToolbarUIAdapter(Shell.Ribbon.Toolbar)); RootWorkItem.UIExtensionSites.RegisterSite(ExtensionSiteNames.RibbonAppMenuBottomPane, new RibbonAppMenuBottomPaneSimpleButtonUIAdapter(RootWorkItem, Shell.applicationMenu)); BankTellerRibbonSkins.Add(RootWorkItem); //BankTellerRibbonWindows.Add(RootWorkItem, Shell.xtraTabbedMdiManager, Shell); BankTellerRibbonWindows.Add(RootWorkItem, ContentWorkspace); #else RootWorkItem.UIExtensionSites.RegisterSite(ExtensionSiteNames.MainMenu, Shell.mainMenuBar); RootWorkItem.UIExtensionSites.RegisterSite(ExtensionSiteNames.MainStatus, Shell.mainStatusBar); RootWorkItem.UIExtensionSites.RegisterSite(ExtensionSiteNames.FileDropDown, Shell.barSubItemFile); RootWorkItem.UIExtensionSites.RegisterSite(ExtensionSiteNames.File, new BarItemWrapper(Shell.mainMenuBar.ItemLinks, Shell.barSubItemFile)); RootWorkItem.UIExtensionSites.RegisterSite(ExtensionSiteNames.SkinsToolBar, Shell.skinsBar); RootWorkItem.UIExtensionSites.RegisterSite(ExtensionSiteNames.ToolBar, Shell.mainBar); RootWorkItem.UIExtensionSites.RegisterSite(ExtensionSiteNames.WindowToolBar, Shell.windowToolBar); // There are two ways to add skins to the BankTeller demo. // 1) SkinMenu: Bypasses the CAB framework and directly adds and // manipulates the menu items. The SkinMenu is standard .NET // functionality and is more efficient and easier to understand. // 2) BankTellerDynamicSkins: Uses the event broker to handle both the // menu Popup event and the handling of the menu item click. This // allows both dynamic menu item creation as well as more adherence // to the CAB decoupled philosophy. It does not provide any // additional functionality. // // SkinMenu and BankTellerDynamicSkins are functionally equivalent. // The two methods give the developer a choice on how closely to // follow the CAB philosophy. // // To change between the two swap the comments on the following two // lines of code. The two lines can also both be uncommented and two // working skin menus will appear. RootWorkItem.UIExtensionSites[ExtensionSiteNames.MainMenu].Add(new SkinMenu(Shell.mainMenuBar)); //BankTellerDynamicSkins.Skins.AddSkins(RootWorkItem); RootWorkItem.UIExtensionSites[ExtensionSiteNames.MainMenu].Add(new WindowMenu(Shell.mainMenuBar, ContentWorkspace, RootWorkItem)); #endif UIElementBuilder.LoadFromConfig(RootWorkItem); }