/// <summary> /// 删除所有ToolWindow /// </summary> internal void ClearWindows() { if (_popupPanel == null || _popupPanel.Children.Count == 0) { return; } int index = 0; while (index < _popupPanel.Children.Count) { ToolWindow win = _popupPanel.Children[index] as ToolWindow; if (win != null) { // 先移除当前项,再清除子项,不可颠倒! _popupPanel.Children.RemoveAt(index); Pane di = win.Content as Pane; if (di != null) { LayoutManager.ClearItems(di); } } else { index++; } } }
/// <summary> /// 将目标Pane的项停靠,合并到当前Tabs或停靠在一边 /// </summary> /// <param name="p_winItem"></param> /// <param name="p_dockPosition"></param> public void AddItem(Pane p_winItem, DockPosition p_dockPosition) { if (p_winItem == null) { return; } if (p_dockPosition == DockPosition.Center) { // 停靠在中部,合并Pane中的所有标签项 var ls = GetAllChildTab(p_winItem); LayoutManager.ClearItems(p_winItem); foreach (Tab item in ls) { Items.Add(item); } } else { // 停靠在当前Tabs的一边 OwnWinItem.AddItem(p_winItem, p_dockPosition, this); p_winItem.RemoveUnused(); } }