コード例 #1
0
ファイル: DragHandler.cs プロジェクト: NTDLS/SyntaxBox
        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;
            }
        }