- 3 min to read
The dock panel is a content placeholder, which can be moved by end-users between particular dock zones within a web page.
To specify which part of a panel can be dragged to move a panel, use the PopupControlSettingsBase.DragElement property. You can prohibit end-users from dragging a panel by setting the PopupControlSettingsBase.AllowDragging property to false.
A DockPanel can be resized by end-users if the PopupControlSettingsBase.AllowResize property is set to true. You can specify the size constraints for a panel using the PopupControlSettingsBase.MinHeight, PopupControlSettingsBase.MaxHeight, PopupControlSettingsBase.MinWidth, and PopupControlSettingsBase.MaxWidth properties. If the panel content does not fit the panel size, you can enable scroll bars via the PopupControlSettingsBase.ScrollBars property.
To recognize panels, the DockPanelSettings.PanelUID property can be used. You can obtain a panel on the server (MVCxDockManager.FindPanelByUID) or client (ASPxClientDockManager.GetPanelByUID and ASPxClientDockZone.GetPanelByUID) side using the panel unique identifier.
A DockPanel has the capability to load panel content on demand via callbacks. Several content loading modes are available via the DockPanelSettings.LoadContentViaCallback property.
A dock panel can either be docked to a dock zone or made to float. End-users can dock/undock panels by dragging them. To change the panel dock state programmatically, use the DockPanelSettings.OwnerZoneUID property on the server side, or the ASPxClientDockPanel.Dock and ASPxClientDockPanel.MakeFloat methods on the client side. To get the panel dock state on the client side, use the ASPxClientDockPanel.IsDocked method. You can specify dock states allowed for a panel (dock only, float only or both) via the DockPanelSettings.AllowedDockState property.
You can obtain a zone that owns the panel by its unique identifier (UID) using the DockPanelSettings.OwnerZoneUID property. To get the owner zone on the client side, use the ASPxClientDockPanel.GetOwnerZone method. To control where the panel is displayed amongst other panels within the zone, use the DockPanelSettings.VisibleIndex property. To manage a panel's visible index on the client side, use the ASPxClientDockPanel.GetVisibleIndex and ASPxClientDockPanel.SetVisibleIndex methods.
Using a dock panel's DockPanelSettings.ForbiddenZones property, you can specify disallowed zones for the panel - the zones to which the panel cannot be docked. To learn more about forbidden zones, follow the Forbidden Zones topic.
You can respond to panel dragging and docking using the corresponding panel events. Additionally you can respond to closing, showing and resizing of a panel using dock manager events. To learn more, see the Common Docking Events topic.
Reasons for a panel not docking
In the following cases, a panel does not dock to a zone. You can set the panel's owner zone programmatically, but it actually stays in a floating state:
- the DockManagerSettings.FreezeLayout property is set to true;
- the zone is contained within the panel's DockPanelSettings.ForbiddenZones collection;
- the DockPanelSettings.AllowedDockState property is set to FloatOnly;
- the DockZoneSettings.AllowGrowing property is set to false and the free space within the zone is less than the dock panel size.