/// <summary> /// Maximises a panel. /// </summary> /// <param name="sender">the panel to maximise.</param> /// <param name="e">Event args.</param> private void DragDockPanel_Maximized(object sender, EventArgs e) { var dragDockPanel1 = sender as DragDockPanel; // Store max'ed panel maximizedPanel = dragDockPanel1; // Loop through children to disable dragging foreach (var child in panels) { var panel = child; panel.DraggingEnabled = false; if (panel != maximizedPanel) panel.Minimize(); } // Update sizes and layout AnimatePanelSizes(); AnimatePanelLayout(); }
/// <summary> /// Puts all of the panel back to a grid view. /// </summary> /// <param name="sender">The minimising panel.</param> /// <param name="e">Event args.</param> private void DragDockPanel_Restored(object sender, EventArgs e) { // Set max'ed panel to null maximizedPanel = null; // Loop through children to disable dragging foreach (var child in panels) { var panel = child; panel.Restore(); panel.DraggingEnabled = true; } // Update sizes and layout AnimatePanelSizes(); AnimatePanelLayout(); }
/// <summary> /// Drops the dragging panel. /// </summary> /// <param name="sender">The dragging panel.</param> /// <param name="args">Drag event args.</param> private void DragDockPanel_DragFinished(object sender, DragEventArgs args) { // Set dragging panel back to null draggingPanel = null; // Update the layout (to reset all panel positions) UpdatePanelLayout(); }
/// <summary> /// Keeps a reference to the dragging panel. /// </summary> /// <param name="sender">The dragging panel.</param> /// <param name="args">Drag event args.</param> private void DragDockPanel_DragStarted(object sender, DragEventArgs args) { var panel = sender as DragDockPanel; // Keep reference to dragging panel draggingPanel = panel; }
/// <summary> /// Unprepares a panel for the UI. Override for hooking custom events. /// </summary> /// <param name="panel">The panel to prepare.</param> protected virtual void UnpreparePanel(DragDockPanel panel) { if (panel == null) return; if (panel.PanelState == PanelState.Maximized) DragDockPanel_Restored(null, null); // Hook up panel events panel.DragStarted -= DragDockPanel_DragStarted; panel.DragFinished -= DragDockPanel_DragFinished; panel.DragMoved -= DragDockPanel_DragMoved; panel.Maximized -= DragDockPanel_Maximized; panel.Restored -= DragDockPanel_Restored; }
/// <summary> /// Prepares a panel for the UI. Override for hooking custom events. /// </summary> /// <param name="panel">The panel to prepare.</param> protected virtual void PreparePanel(DragDockPanel panel) { // Hook up panel events if (panel == null) return; panel.DragStarted += DragDockPanel_DragStarted; panel.DragFinished += DragDockPanel_DragFinished; panel.DragMoved += DragDockPanel_DragMoved; panel.Maximized += DragDockPanel_Maximized; panel.Restored += DragDockPanel_Restored; if (panel.PanelState != PanelState.Maximized) return; maximizedPanel = panel; foreach (var dragDockPanel in panels.Where(dragDockPanel => panel != dragDockPanel)) dragDockPanel.Minimize(); }