void RemoveDemoModulePageHeaderItemLinks(DemoModule demoModuleControl) { foreach (var itemLinkBase in demoModuleControl.PageHeaderItemLinks) { Ribbon.PageHeaderItemLinks.Remove(itemLinkBase); } }
void OnNavBarItemSelecting(object sender, NavBarItemSelectingEventArgs e) { if (e.PrevItem != null) { var prevCategory = (DemoModuleCategory)e.PrevItem.DataContext; List <DemoModule> modules; if (_demoModules.TryGetValue(prevCategory, out modules)) { foreach (var demoModule in modules) { demoModule.Bar.IsVisible = false; _subcategories[((ClassicShowType)demoModule.ShowMethodType).Subcategory].IsVisible = false; } } } if (e.NewItem == null) { Ribbon.SelectedPage = Ribbon.SelectedPage.PageCategory.Pages[0]; currentDemoModuleControl = null; return; } var newCategory = (DemoModuleCategory)e.NewItem.DataContext; foreach (var demoModule in _demoModules[newCategory]) { _subcategories[((ClassicShowType)demoModule.ShowMethodType).Subcategory].IsVisible = true; demoModule.Bar.IsVisible = true; } Ribbon.SelectedPage = _demoModules[newCategory][0].Bar; }
void RemoveDemoModuleBar(DemoModule demoModule) { RemoveDemoModulePageHeaderItemLinks(demoModule); var rpcb = _subcategories[((ClassicShowType)demoModule.ShowMethodType).Subcategory]; this.ribbonManager.Unmerge(demoModule.Bar); if (rpcb.Pages.Count == 0) { Ribbon.Categories.Remove(_subcategories[((ClassicShowType)demoModule.ShowMethodType).Subcategory]); _subcategories.Remove(((ClassicShowType)demoModule.ShowMethodType).Subcategory); } else { var isVisible = false; foreach (var page in rpcb.Pages) { if (page.IsVisible) { isVisible = true; break; } } _subcategories[((ClassicShowType)demoModule.ShowMethodType).Subcategory].IsVisible = isVisible; } }
void PrepareDemoModuleRoot(DemoModule demoModuleControl) { var manager = ((Grid)demoModuleControl.Content).Children[0] as DockLayoutManager; if (manager != null) { demoModuleControl.Root = demoModuleControl; return; } manager = new DockLayoutManager() { Background = new SolidColorBrush(Colors.Transparent) }; manager.LayoutRoot = new LayoutGroup() { Orientation = Orientation.Horizontal, Background = new SolidColorBrush(Colors.Transparent) }; var demoModulePanel = new LayoutPanel() { ShowCaption = false, ShowBorder = false, Background = new SolidColorBrush(Colors.Transparent) }; demoModulePanel.Content = demoModuleControl; manager.LayoutRoot.Add(demoModulePanel); demoModuleControl.Root = manager; }
/// <summary> /// /// </summary> /// <param name="demoModule"></param> public void RemoveDemoModule(DemoModule demoModule) { DepPropertyHelper.UnsubscribeFromChanged(demoModule.Bar, RibbonPage.IsSelectedProperty, demoModule.BarIsSelectedChanged); var demoModulesList = _demoModules[((ClassicShowType)demoModule.ShowMethodType).Category]; demoModulesList.Remove(demoModule); if (demoModulesList.Count == 0) { _demoModules.Remove(((ClassicShowType)demoModule.ShowMethodType).Category); UpdateNavBar(); } RemoveDemoModuleBar(demoModule); }
void PrepareDemoModuleBar(DemoModule demoModule) { var grid = (Grid)demoModule.Content; demoModule.BarManager = (BarManager)grid.Children[0]; demoModule.RibbonControl = (RibbonControl)demoModule.BarManager.Child; grid.Children.Remove(demoModule.BarManager); demoModule.Bar = demoModule.RibbonControl.Categories[0].Pages[0]; demoModule.BarIsSelectedChanged = (s, e) => RaiseDemoModuleBarIsSelectedChanged(demoModule); demoModule.PageHeaderItemLinks = new List <BarItemLinkBase>(demoModule.RibbonControl.PageHeaderItemLinks); foreach (var link in demoModule.PageHeaderItemLinks) { demoModule.RibbonControl.PageHeaderItemLinks.Remove(link); } }
/// <summary> /// Adds an application module depended on the category /// </summary> /// <param name="demoModule">The demo module.</param> public void AddDemoModule(DemoModule demoModule) { PrepareDemoModuleBar(demoModule); PrepareDemoModuleRoot(demoModule); DepPropertyHelper.SubscribeToChanged(demoModule.Bar, RibbonPage.IsSelectedProperty, demoModule.BarIsSelectedChanged); AddDemoModuleBar(demoModule); List <DemoModule> demoModulesList; if (!_demoModules.TryGetValue(((ClassicShowType)demoModule.ShowMethodType).Category, out demoModulesList)) { demoModulesList = new List <DemoModule>(); _demoModules.Add(((ClassicShowType)demoModule.ShowMethodType).Category, demoModulesList); UpdateNavBar(); } demoModulesList.Add(demoModule); }
void RaiseDemoModuleBarIsSelectedChanged(DemoModule demoModuleControl) { if (!demoModuleControl.Bar.IsSelected) { currentDemoModuleControl = demoModuleControl; return; } if (demoModuleControl != currentDemoModuleControl) { if (currentDemoModuleControl != null) { RemoveDemoModulePageHeaderItemLinks(currentDemoModuleControl); } currentDemoModuleControl = demoModuleControl; SetDemoModulePresenterContent(demoModuleControl.Root); AddDemoModulePageHeaderItemLinks(currentDemoModuleControl); } }
public void SelectDemoModule(DemoModule demoModule) { if (demoModule == null) { if (currentDemoModuleControl != null) { RemoveDemoModulePageHeaderItemLinks(currentDemoModuleControl); currentDemoModuleControl = null; } _demoModulePresenter.Content = DefaultPage; if (_navBar.SelectedItem != null) { _navBar.SelectedItem.Group.SelectedItemIndex = -1; } } else { _navBar.View.SelectItem(_navBarItems[((ClassicShowType)demoModule.ShowMethodType).Category]); Ribbon.SelectedPage = demoModule.Bar; } }
public override void Apply(FrameworkElement content) { base.Apply(content); var module = content as DemoModule; if (DemoModulesControl.Current == null) { return; } module.Height = double.NaN; module.Width = double.NaN; demoModule = module; if (demoModule == null) { return; } demoModule.AddPrefixToBarItems(); if (Category != null) { Show(); } }
void AddDemoModuleBar(DemoModule demoModule) { var isVisible = CurrentCategory == ((ClassicShowType)demoModule.ShowMethodType).Category; RibbonPageCategoryBase rpcb; if (_subcategories.ContainsKey(((ClassicShowType)demoModule.ShowMethodType).Subcategory)) { rpcb = _subcategories[((ClassicShowType)demoModule.ShowMethodType).Subcategory]; } else { rpcb = new RibbonPageCategory() { Caption = ((ClassicShowType)demoModule.ShowMethodType).Subcategory }; Ribbon.Categories.Add(rpcb); _subcategories.Add(((ClassicShowType)demoModule.ShowMethodType).Subcategory, rpcb); } rpcb.IsVisible = isVisible; demoModule.Bar.IsVisible = isVisible; this.ribbonManager.Merge(rpcb, demoModule.BarManager, demoModule.RibbonControl); }
public DemoModuleSelectCategoryCommand(DemoModule demoModule) { this.demoModule = demoModule; }