public override bool DragAndDrop_HandleDrop(Package p, int x, int y) { Vector2i pos = CanvasPosToLocal(new Vector2i(x, y)); Pos dir = GetDroppedTabDirection(pos.X, pos.Y); DockedTabControl addTo = m_DockedTabControl; if (dir == Pos.Fill && addTo == null) { return(false); } if (dir != Pos.Fill) { DockBase dock = GetChildDock(dir); addTo = dock.m_DockedTabControl; if (!m_DropFar) { dock.BringToFront(); } else { dock.SendToBack(); } } if (p.Name == "TabButtonMove") { TabButton tabButton = DragAndDrop.SourceControl as TabButton; if (null == tabButton) { return(false); } addTo.AddPage(tabButton); } if (p.Name == "TabWindowMove") { DockedTabControl tabControl = DragAndDrop.SourceControl as DockedTabControl; if (null == tabControl) { return(false); } if (tabControl == addTo) { return(false); } tabControl.MoveTabsTo(addTo); } Invalidate(); return(true); }
public void MoveTabsTo(DockedTabControl target) { var children = TabStrip.Children.ToArray(); // copy because collection will be modified foreach (Control child in children) { TabButton button = child as TabButton; if (button == null) continue; target.AddPage(button); } Invalidate(); }
public void MoveTabsTo(DockedTabControl target) { var children = TabStrip.Children.ToArray(); // copy because collection will be modified foreach (Control child in children) { TabButton button = child as TabButton; if (button == null) { continue; } target.AddPage(button); } Invalidate(); }