private void TabWindowSplitter_OnEndDrag(bool abort) { if (abort) { return; } Point pt = m_splitterLocation; Rectangle rect = TabWindowSplitter_GetDragRectangle(); TabWindow tabWindow = DragControl as TabWindow; DockManager dockManager = tabWindow.DockManager; DockState state = tabWindow.DockState; if (tabWindow.IsTopLevel) { Rectangle rectDockArea = dockManager.DockArea; Content c = dockManager.ActiveAutoHideContent; if (state == DockState.DockLeft && rectDockArea.Width > 0) { dockManager.DockLeftPortion += ((double)rect.X - (double)pt.X) / (double)rectDockArea.Width; } else if (state == DockState.DockRight && rectDockArea.Width > 0) { dockManager.DockRightPortion += ((double)pt.X - (double)rect.X) / (double)rectDockArea.Width; } else if (state == DockState.DockBottom && rectDockArea.Height > 0) { dockManager.DockBottomPortion += ((double)pt.Y - (double)rect.Y) / (double)rectDockArea.Height; } else if (state == DockState.DockTop && rectDockArea.Height > 0) { dockManager.DockTopPortion += ((double)rect.Y - (double)pt.Y) / (double)rectDockArea.Height; } else if (state == DockState.DockLeftAutoHide && rectDockArea.Width > 0) { c.AutoHidePortion += ((double)rect.X - (double)pt.X) / (double)rectDockArea.Width; } else if (state == DockState.DockRightAutoHide && rectDockArea.Width > 0) { c.AutoHidePortion += ((double)pt.X - (double)rect.X) / (double)rectDockArea.Width; } else if (state == DockState.DockBottomAutoHide && rectDockArea.Height > 0) { c.AutoHidePortion += ((double)pt.Y - (double)rect.Y) / (double)rectDockArea.Height; } else if (state == DockState.DockTopAutoHide && rectDockArea.Height > 0) { c.AutoHidePortion += ((double)rect.Y - (double)pt.Y) / (double)rectDockArea.Height; } } else { TabWindow tabWindowPrev = tabWindow.Previous; double sizeAdjust; if (tabWindowPrev.LayoutStyle == LayoutStyles.Horizontal && tabWindowPrev.ClientRectangle.Width > 0) { sizeAdjust = ((double)rect.X - (double)pt.X) / (double)tabWindowPrev.ClientRectangle.Width; } else { sizeAdjust = ((double)rect.Y - (double)pt.Y) / (double)tabWindowPrev.ClientRectangle.Height; } tabWindowPrev.LayoutSize += sizeAdjust; tabWindowPrev.Invalidate(); tabWindowPrev.PerformLayout(); } }
public void PerformLayout() { TabWindow.PerformLayout(); }