예제 #1
0
        /// <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++;
                }
            }
        }
예제 #2
0
        /// <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();
            }
        }