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

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

# Line (class)

Represents the line shape.

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 Line : Shape
```

## Examples

C#:

```csharp
using cAlgo.API;

namespace cAlgo
{
    // This sample shows how to draw a line shape on your chart
    public partial class LineShapeSample : Indicator
    {
        protected override void Initialize()
        {
            var xCenter = Chart.Width / 2;
            var yCenter = Chart.Height / 2;

            var line = new Line
            {
                X1 = xCenter,
                X2 = xCenter + 100,
                Y1 = yCenter,
                Y2 = yCenter + 100,
                StrokeColor = Color.Red,
                StrokeThickness = 2
            };

            Chart.AddControl(line);
        }

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

Python:

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

from cAlgo.API import *

class Test():
    def initialize(self):
        xCenter = api.Chart.Width / 2
        yCenter = api.Chart.Height / 2

        line = Line()
        line.X1 = xCenter
        line.X2 = xCenter + 100
        line.Y1 = yCenter
        line.Y2 = yCenter + 100
        line.StrokeColor = Color.Red
        line.StrokeThickness = 2

        api.Chart.AddControl(line)
```

config.json:

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

## Constructors

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

## Properties

- `public double X1 {get; set;}` — Gets or sets x-axis point 1 data. [details](https://help.ctrader.com/ctrader-algo/references/Controls/Layout/Shapes/Line/X1/index.md)
- `public double X2 {get; set;}` — Gets or sets the x-axis point 2 data. [details](https://help.ctrader.com/ctrader-algo/references/Controls/Layout/Shapes/Line/X2/index.md)
- `public double Y1 {get; set;}` — Gets or sets the y-axis point 2 data. [details](https://help.ctrader.com/ctrader-algo/references/Controls/Layout/Shapes/Line/Y1/index.md)
- `public double Y2 {get; set;}` — Gets or sets the y-axis point 2 data. [details](https://help.ctrader.com/ctrader-algo/references/Controls/Layout/Shapes/Line/Y2/index.md)

## Inherited members

- `public Color StrokeColor {get; set;}` (from Shape) [details](https://help.ctrader.com/ctrader-algo/references/Controls/Layout/Shapes/Shape/StrokeColor/index.md)
- `public Color FillColor {get; set;}` (from Shape) [details](https://help.ctrader.com/ctrader-algo/references/Controls/Layout/Shapes/Shape/FillColor/index.md)
- `public double StrokeThickness {get; set;}` (from Shape) [details](https://help.ctrader.com/ctrader-algo/references/Controls/Layout/Shapes/Shape/StrokeThickness/index.md)
- `public Stretch Stretch {get; set;}` (from Shape) [details](https://help.ctrader.com/ctrader-algo/references/Controls/Layout/Shapes/Shape/Stretch/index.md)
- `public PenLineCap StrokeEndLineCap {get; set;}` (from Shape) [details](https://help.ctrader.com/ctrader-algo/references/Controls/Layout/Shapes/Shape/StrokeEndLineCap/index.md)
- `public PenLineCap StrokeStartLineCap {get; set;}` (from Shape) [details](https://help.ctrader.com/ctrader-algo/references/Controls/Layout/Shapes/Shape/StrokeStartLineCap/index.md)
- `public PenLineJoin StrokeLineJoin {get; set;}` (from Shape) [details](https://help.ctrader.com/ctrader-algo/references/Controls/Layout/Shapes/Shape/StrokeLineJoin/index.md)
- `public double StrokeMiterLimit {get; set;}` (from Shape) [details](https://help.ctrader.com/ctrader-algo/references/Controls/Layout/Shapes/Shape/StrokeMiterLimit/index.md)
- `public double[] StrokeDashArray {get; set;}` (from Shape) [details](https://help.ctrader.com/ctrader-algo/references/Controls/Layout/Shapes/Shape/StrokeDashArray/index.md)
- `public double StrokeDashOffset {get; set;}` (from Shape) [details](https://help.ctrader.com/ctrader-algo/references/Controls/Layout/Shapes/Shape/StrokeDashOffset/index.md)
- `public PenLineCap StrokeDashCap {get; set;}` (from Shape) [details](https://help.ctrader.com/ctrader-algo/references/Controls/Layout/Shapes/Shape/StrokeDashCap/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)

