protected LayoutHelper(DocumentPaneTabPanel panel, Size panelConstraint) { Validate.IsNotNull(panel, nameof(panel)); Panel = panel; PanelConstraint = panelConstraint; var observableCollection = panel.DocumentPane?.PinnedViews; var count = panel.InternalChildren.Count; var capacity1 = observableCollection?.Count ?? 0; var capacity2 = Math.Max(count - capacity1, 0); UnpinnedTabs = new List <TabItem>(capacity1); PinnedTabs = new List <TabItem>(capacity2); foreach (TabItem internalChild in panel.InternalChildren) { var content = GetView(internalChild); if (content.IsPinned) { PinnedTabs.Add(internalChild); } else { UnpinnedTabs.Add(internalChild); } } }
private void UpdateDragDetails() { _parentDocumentTabPanel = this.FindLogicalAncestor<DocumentPaneTabPanel>(); _parentDocumentTabPanelScreenArea = _parentDocumentTabPanel.GetScreenArea(); _otherTabs = _parentDocumentTabPanel.Children.Cast<TabItem>().Where(ch => ch.Visibility != Visibility.Collapsed).ToList(); var currentTabScreenArea = this.FindLogicalAncestor<TabItem>().GetScreenArea(); _otherTabsScreenArea = _otherTabs.Select(ti => { var screenArea = ti.GetScreenArea(); return new Rect(screenArea.Left, screenArea.Top, currentTabScreenArea.Width, screenArea.Height); }).ToList(); }
public MeasureHelper(DocumentPaneTabPanel panel, Size panelConstraint) : base(panel, panelConstraint) { _tabConstraint = new Size(double.PositiveInfinity, PanelConstraint.Height); }
public ArrangeHelper(DocumentPaneTabPanel panel, Size panelConstraint) : base(panel, panelConstraint) { }