public void DockFill([NotNull] string tabHeader, double priority, [NotNull] Control userControl) { Assert.ArgumentNotNull(tabHeader, nameof(tabHeader)); Assert.ArgumentNotNull(userControl, nameof(userControl)); var tabItemInfo = new TabItemInfo { Header = tabHeader, Priority = priority, UserControl = userControl }; tabs.Add(tabItemInfo); TabPanels.Children.Add(userControl); }
public void RenderPanels([NotNull] ISkin skin, [NotNull] ContentModel contentModel, [NotNull] IEnumerable <IPanel> panels) { Assert.ArgumentNotNull(skin, nameof(skin)); Assert.ArgumentNotNull(contentModel, nameof(contentModel)); Assert.ArgumentNotNull(panels, nameof(panels)); var customizationContext = new PanelContext(skin, contentModel); tabs.Clear(); Tabs.Items.Clear(); var contentTab = new TabItemInfo { Header = Resources.DefaultSkin_InitializeCustomizations_Content, UserControl = InnerDock, Priority = 1000 }; tabs.Add(contentTab); foreach (var panel in panels.Reverse()) { panel.Render(customizationContext); } if (tabs.Count == 1) { Tabs.Visibility = Visibility.Collapsed; return; } tabs.Sort((tab0, tab1) => tab0.Priority.CompareTo(tab1.Priority)); foreach (var tabItemInfo in tabs) { var tabItem = new TabItem { Header = tabItemInfo.Header, Tag = tabItemInfo, IsSelected = tabItemInfo.Priority == 1000 }; tabItemInfo.UserControl.Visibility = tabItem.IsSelected ? Visibility.Visible : Visibility.Collapsed; Tabs.Items.Add(tabItem); } }
private static DfmTabItemBlockToken CreateTabItem( TabItemInfo info) { var title = new DfmTabTitleBlockToken( DfmTabGroupBlockRule.Instance, info.Context, info.Title, info.HeadSource); var content = new DfmTabContentBlockToken( DfmTabGroupBlockRule.Instance, info.Context, info.Content.ToImmutableArray(), info.GetContentSourceInfo()); return(new DfmTabItemBlockToken( DfmTabGroupBlockRule.Instance, info.Context, info.Id, info.Condition, title, content, info.GetItemSourceInfo())); }