//----------------------------------------------------- private void DockChilds() { if (m_bIsDocking) { return; } m_bIsDocking = true; C3DPoint offset = new C3DPoint(0, 0, 0); C3DSize size = Size; foreach (C2iComposant3D composantFils in Childs) { CDockStyle dockStyle = composantFils.LocationInParent as CDockStyle; if (dockStyle != null) { switch (dockStyle.DockStyle) { case E3DDockStyle.Top: composantFils.Size = new C3DSize( size.With, composantFils.Size.Height, size.Depth); composantFils.Position = new C3DPoint( offset.X, offset.Y + size.Height - composantFils.Size.Height, offset.Z); size.Inflate( 0, -composantFils.Size.Height, 0); break; case E3DDockStyle.Bottom: composantFils.Size = new C3DSize( size.With, composantFils.Size.Height, size.Depth); composantFils.Position = new C3DPoint( offset.X, offset.Y, offset.Z); size.Inflate( 0, -composantFils.Size.Height, 0); offset.Offset( 0, composantFils.Size.Height, 0); break; case E3DDockStyle.Left: composantFils.Size = new C3DSize( composantFils.Size.With, size.Height, size.Depth); composantFils.Position = new C3DPoint( offset.X, offset.Y, offset.Z); size.Inflate( -composantFils.Size.With, 0, 0); offset.Offset( composantFils.Size.With, 0, 0); break; case E3DDockStyle.Right: composantFils.Size = new C3DSize( composantFils.Size.With, size.Height, size.Depth); composantFils.Position = new C3DPoint( offset.X + size.With - composantFils.Size.With, offset.Y, offset.Z); size.Inflate( -composantFils.Size.With, 0, 0); break; case E3DDockStyle.Back: composantFils.Size = new C3DSize( size.With, size.Height, composantFils.Size.Depth); composantFils.Position = new C3DPoint( offset.X, offset.Y, offset.Z); size.Inflate(0, 0, -composantFils.Size.Depth); offset.Offset(0, 0, composantFils.Size.Depth); break; case E3DDockStyle.Front: composantFils.Size = new C3DSize( size.With, size.Height, composantFils.Size.Depth); composantFils.Position = new C3DPoint( offset.X, offset.Y, offset.Z + size.Depth - composantFils.Size.Depth); size.Inflate( 0, 0, -composantFils.Size.Depth); break; case E3DDockStyle.Fill: composantFils.Position = offset; composantFils.Size = size; break; default: break; } } } m_bIsDocking = false; }