---
id: "T:cAlgo.API.Frame"
kind: "interface"
namespace: "cAlgo.API"
url: "https://help.ctrader.com/ctrader-algo/references/Plugin/Chart/Frame/"
---

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

# Frame (interface)

Base interface for chart frames.

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

- CLI: Available to plugins only, and plugins cannot run in the CLI.
- Cloud: Available to plugins only, and plugins cannot run in the cloud.

## Definition

```csharp
public interface Frame
```

## Examples

C#:

```csharp
foreach (var frame in ChartManager)
{
    if (frame is ChartFrame chartFrame)
        Print("Chart frame {0}: {1} {2}", frame.Id, chartFrame.Symbol.Name, chartFrame.TimeFrame);
    else if (frame is CustomFrame)
        Print("Custom frame {0}, size {1}x{2}", frame.Id, frame.Width, frame.Height);
}
```

Python:

```python
for frame in api.ChartManager:
    if isinstance(frame.__implementation__, ChartFrame):
        chartFrame = ChartFrame(frame)
        api.Print(f"Chart frame {frame.Id}: {chartFrame.Symbol.Name} {chartFrame.TimeFrame}")
    elif isinstance(frame.__implementation__, CustomFrame):
        api.Print(f"Custom frame {frame.Id}, size {frame.Width}x{frame.Height}")
```

## Methods

- `void Activate()` — Brings the chart frame to the front. [details](https://help.ctrader.com/ctrader-algo/references/Plugin/Chart/Frame/Activate/index.md)
- `bool Attach()` — Attaches frame to main chart container. [details](https://help.ctrader.com/ctrader-algo/references/Plugin/Chart/Frame/Attach/index.md)
- `bool Attach(ChartContainer targetContainer)` — Attaches frame to passed chart container. [details](https://help.ctrader.com/ctrader-algo/references/Plugin/Chart/Frame/Attach/index.md)
- `bool Detach()` — Detaches frame from it is chart container. [details](https://help.ctrader.com/ctrader-algo/references/Plugin/Chart/Frame/Detach/index.md)

## Properties

- `ChartContainer ChartContainer {get;}` — Returns frame container. [details](https://help.ctrader.com/ctrader-algo/references/Plugin/Chart/Frame/ChartContainer/index.md)
- `double Height {get;}` — Returns current height of frame. [details](https://help.ctrader.com/ctrader-algo/references/Plugin/Chart/Frame/Height/index.md)
- `string Id {get;}` — Returns frame Id. [details](https://help.ctrader.com/ctrader-algo/references/Plugin/Chart/Frame/Id/index.md)
- `int Index {get; set;}` — Get / set frame index in container. [details](https://help.ctrader.com/ctrader-algo/references/Plugin/Chart/Frame/Index/index.md)
- `bool IsAttached {get;}` — Returns true if frame is attached otherwise false. [details](https://help.ctrader.com/ctrader-algo/references/Plugin/Chart/Frame/IsAttached/index.md)
- `double Width {get;}` — Returns current width of frame. [details](https://help.ctrader.com/ctrader-algo/references/Plugin/Chart/Frame/Width/index.md)

## Events

- `event Action<FrameAttachedEventArgs> Attached;` — Occurs when frame is attached. [details](https://help.ctrader.com/ctrader-algo/references/Plugin/Chart/Frame/Attached/index.md)
- `event Action<FrameContainerChangedEventArgs> ContainerChanged;` — Occurs when frame container is changed. [details](https://help.ctrader.com/ctrader-algo/references/Plugin/Chart/Frame/ContainerChanged/index.md)
- `event Action<FrameDetachedEventArgs> Detached;` — Occurs when frame is detached. [details](https://help.ctrader.com/ctrader-algo/references/Plugin/Chart/Frame/Detached/index.md)
- `event Action<FrameSizeChangedEventArgs> SizeChanged;` — Occurs when frame size changes. [details](https://help.ctrader.com/ctrader-algo/references/Plugin/Chart/Frame/SizeChanged/index.md)

