private void DockWindowSplitter_OnEndDrag(bool abort) { if (abort) { return; } DockWindow dockWindow = DragControl as DockWindow; if (dockWindow == null) { return; } DockContainer dockPanel = dockWindow.DockPanel; DockState state = dockWindow.DockState; if ((Control.ModifierKeys & Keys.Shift) != 0) { dockWindow.SendToBack(); } Point pt = m_splitterLocation; Rectangle rect = GetWindowSplitterDragRectangle(); Rectangle rectDockArea = dockPanel.DockArea; if (state == DockState.DockLeft && rectDockArea.Width > 0) { dockPanel.DockLeftPortion += ((double)rect.X - (double)pt.X) / (double)rectDockArea.Width; } else if (state == DockState.DockRight && rectDockArea.Width > 0) { dockPanel.DockRightPortion += ((double)pt.X - (double)rect.X) / (double)rectDockArea.Width; } else if (state == DockState.DockBottom && rectDockArea.Height > 0) { dockPanel.DockBottomPortion += ((double)pt.Y - (double)rect.Y) / (double)rectDockArea.Height; } else if (state == DockState.DockTop && rectDockArea.Height > 0) { dockPanel.DockTopPortion += ((double)rect.Y - (double)pt.Y) / (double)rectDockArea.Height; } }