private void Construct(Control control, IDockingElement innerElement)
{
_innerElement = innerElement;
_innerMinimum = INNER_MINIMUM;
// Hook into events on the target control
_control = control;
_control.SizeChanged += new EventHandler(OnControlSizeChanged);
_control.Disposed += new EventHandler(OnControlDisposed);
// Create and add a control we use to obscure the client area during multi-part operations
_obscure = new ObscureControl();
_obscure.Anchor = (AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top | AnchorStyles.Bottom);
_obscure.Visible = false;
_control.Controls.Add(_obscure);
// Create docking elements for managing each of the four control edges
Add(new KryptonDockingEdge("Top", control, DockingEdge.Top));
Add(new KryptonDockingEdge("Bottom", control, DockingEdge.Bottom));
Add(new KryptonDockingEdge("Left", control, DockingEdge.Left));
Add(new KryptonDockingEdge("Right", control, DockingEdge.Right));
}