---
id: "T:cAlgo.API.DockPanel"
kind: "class"
namespace: "cAlgo.API"
url: "https://help.ctrader.com/ctrader-algo/references/Controls/Layout/DockPanel/"
---

> Documentation index for agents: https://help.ctrader.com/ctrader-algo/llms.txt · machine index: https://help.ctrader.com/ctrader-algo/api.json

# DockPanel (class)

Defines the area where you can arrange child elemens either horizontally or vertically, relative to each other.

Environments: Desktop supported · CLI not supported · Cloud not supported.

- CLI: Accepted without error but never displayed, so control events such as Click are never raised.
- Cloud: Accepted without error but never displayed, so control events such as Click are never raised.

## Definition

```csharp
public class DockPanel : Panel
```

## Examples

C#:

```csharp
using cAlgo.API;

namespace cAlgo
{
    // This sample indicator shows how to use DockPanel
    public partial class DockPanelSample : Indicator
    {
        protected override void Initialize()
        {
            var dockPanel = new DockPanel
            {
                HorizontalAlignment = HorizontalAlignment.Center,
                VerticalAlignment = VerticalAlignment.Center,
                BackgroundColor = Color.Gold,
                Opacity = 0.8
            };

            dockPanel.AddChild(new TextBlock
            {
                Text = "Enter Your Name",
                Margin = 5,
                Dock = Dock.Top,
                HorizontalAlignment = HorizontalAlignment.Center,
                ForegroundColor = Color.Black,
                FontWeight = FontWeight.ExtraBold
            });

            dockPanel.AddChild(new TextBox
            {
                Dock = Dock.Bottom,
                Margin = 5,
                Width = 100
            });

            Chart.AddControl(dockPanel);
        }

        public override void Calculate(int index)
        {
        }
    }
}
```

Python:

```python
import clr
clr.AddReference("cAlgo.API")

from cAlgo.API import *

class Test():
    def initialize(self):
        dockPanel = DockPanel()
        dockPanel.HorizontalAlignment = HorizontalAlignment.Center
        dockPanel.VerticalAlignment = VerticalAlignment.Center
        dockPanel.BackgroundColor = Color.Gold
        dockPanel.Opacity = 0.8

        textBlock = TextBlock()
        textBlock.Text = "Enter Your Name"
        textBlock.Margin = Thickness(5)
        textBlock.Dock = Dock.Top
        textBlock.HorizontalAlignment = HorizontalAlignment.Center
        textBlock.ForegroundColor = Color.Black
        textBlock.FontWeight = FontWeight.ExtraBold

        dockPanel.AddChild(textBlock)

        textBox = TextBox()
        textBox.Dock = Dock.Bottom
        textBox.Margin = Thickness(5)
        textBox.Width = 100

        dockPanel.AddChild(textBox)

        api.Chart.AddControl(dockPanel)
```

config.json:

```json
{
  "AccessRights": "None",
  "TimeZone": "UTC",
  "IsOverlay": true
}
```

## Constructors

- `public DockPanel()` — Initializes a new instance of the DockPanel class. [details](https://help.ctrader.com/ctrader-algo/references/Controls/Layout/DockPanel/Constructor/index.md)

## Properties

- `public bool LastChildFill {get; set;}` — Indicates whether the last child element within a DockPanel stretches to fill the remaining available space. [details](https://help.ctrader.com/ctrader-algo/references/Controls/Layout/DockPanel/LastChildFill/index.md)

## Inherited members

- `public void AddChild(ControlBase child)` (from Panel) [details](https://help.ctrader.com/ctrader-algo/references/Controls/Layout/Panel/AddChild/index.md)
- `public void RemoveChild(ControlBase child)` (from Panel) [details](https://help.ctrader.com/ctrader-algo/references/Controls/Layout/Panel/RemoveChild/index.md)
- `public bool HasChild(ControlBase child)` (from Panel) [details](https://help.ctrader.com/ctrader-algo/references/Controls/Layout/Panel/HasChild/index.md)
- `public Color BackgroundColor {get; set;}` (from Panel) [details](https://help.ctrader.com/ctrader-algo/references/Controls/Layout/Panel/BackgroundColor/index.md)
- `public IEnumerable<ControlBase> Children {get;}` (from Panel) [details](https://help.ctrader.com/ctrader-algo/references/Controls/Layout/Panel/Children/index.md)
- `public int ChildCount {get;}` (from Panel) [details](https://help.ctrader.com/ctrader-algo/references/Controls/Layout/Panel/ChildCount/index.md)
- `public void ResetProperty(ControlProperty property)` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/ResetProperty/index.md)
- `public Guid UniqueId {get;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/UniqueId/index.md)
- `public Style Style {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/Style/index.md)
- `public double Left {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/Left/index.md)
- `public double Top {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/Top/index.md)
- `public double Right {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/Right/index.md)
- `public double Bottom {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/Bottom/index.md)
- `public double Width {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/Width/index.md)
- `public double Height {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/Height/index.md)
- `public double MinWidth {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/MinWidth/index.md)
- `public double MinHeight {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/MinHeight/index.md)
- `public double MaxWidth {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/MaxWidth/index.md)
- `public double MaxHeight {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/MaxHeight/index.md)
- `public bool IsEnabled {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/IsEnabled/index.md)
- `public bool IsVisible {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/IsVisible/index.md)
- `public double Opacity {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/Opacity/index.md)
- `public Thickness Margin {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/Margin/index.md)
- `public VerticalAlignment VerticalAlignment {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/VerticalAlignment/index.md)
- `public HorizontalAlignment HorizontalAlignment {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/HorizontalAlignment/index.md)
- `public Dock Dock {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/Dock/index.md)
- `public bool IsHitTestVisible {get; set;}` (from ControlBase) [details](https://help.ctrader.com/ctrader-algo/references/Controls/ControlBase/IsHitTestVisible/index.md)

