protected void DockOuter([NotNull] PanelContext context, [NotNull] Control userControl, Dock dockPosition) { Debug.ArgumentNotNull(context, nameof(context)); Debug.ArgumentNotNull(userControl, nameof(userControl)); var i = context.Skin as ISupportsPanels; if (i != null) { i.DockOuter(userControl, dockPosition); } }
protected void AddTab([NotNull] PanelContext context, [NotNull] string tabHeader, double priority, [NotNull] Control userControl) { Debug.ArgumentNotNull(context, nameof(context)); Debug.ArgumentNotNull(tabHeader, nameof(tabHeader)); Debug.ArgumentNotNull(userControl, nameof(userControl)); var i = context.Skin as ISupportsPanels; if (i != null) { i.DockFill(tabHeader, priority, 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); } }
public abstract void Render(PanelContext context);
public abstract bool CanRender(PanelContext context);