Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
        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()));
        }