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

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

# WebView (class)

Represents the web view control.

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 WebView : ControlBase
```

## Examples

C#:

```csharp
using cAlgo.API;

namespace cAlgo.Robots
{
    public partial class WebViewOnChart : Robot
    {
        private WebView _webView;

        private TextBox _addressTextBox;

        private TextBox _scriptTextBox;

        private Button _executeScriptButton;

        protected override void OnStart()
        {
            var goBackButton = new Button
            {
                Text = "←",
                Margin = 3
            };

            goBackButton.Click += OnGoBackButtonClick;

            var goForwardButton = new Button
            {
                Text = "→",
                Margin = 3
            };

            goForwardButton.Click += OnGoForwardButtonClick;

            _addressTextBox = new TextBox
            {
                Text = "https://ctrader.com/",
                Margin = 3,
                Width = 150,
                MinWidth = 150,
                MaxWidth = 150
            };

            var goButton = new Button
            {
                Text = "→",
                Margin = 3
            };

            goButton.Click += OnGoButtonClick;

            var reloadButton = new Button
            {
                Text = "Reload",
                Margin = 3
            };

            reloadButton.Click += OnReloadButtonClick;

            var stopButton = new Button
            {
                Text = "x",
                Margin = 3
            };

            stopButton.Click += OnStopButtonClick;

            _scriptTextBox = new TextBox
            {
                Text = "alert('Hi');",
                Margin = 3,
                Width = 150,
                MinWidth = 150,
                MaxWidth = 150,
                IsEnabled = false
            };

            _executeScriptButton = new Button
            {
                Text = "Execute Script",
                Margin = 3,
                IsEnabled = false
            };

            _executeScriptButton.Click += OnExecuteScriptButtonClick;

            var addressBarPanel = new StackPanel
            {
                MaxHeight = 50,
                VerticalAlignment = VerticalAlignment.Top,
                BackgroundColor = Color.Black,
                Orientation = Orientation.Horizontal
            };

            addressBarPanel.AddChild(goBackButton);
            addressBarPanel.AddChild(goForwardButton);
            addressBarPanel.AddChild(_addressTextBox);
            addressBarPanel.AddChild(goButton);
            addressBarPanel.AddChild(reloadButton);
            addressBarPanel.AddChild(stopButton);
            addressBarPanel.AddChild(_scriptTextBox);
            addressBarPanel.AddChild(_executeScriptButton);

            _webView = new WebView
            {
                DefaultBackgroundColor = Color.Red
            };

            _webView.NavigationCompleted += OnWebViewNavigationCompleted;
            _webView.WebMessageReceived += OnWebViewWebMessageReceived;
            _webView.Loaded += OnWebViewLoaded;
            _webView.Unloaded += OnWebViewUnloaded;

            var mainGrid = new Grid(2, 1);

            mainGrid.Rows[0].SetHeightToAuto();
            mainGrid.Rows[1].SetHeightInStars(1);

            mainGrid.AddChild(addressBarPanel, 0, 0);
            mainGrid.AddChild(_webView, 1, 0);

            Chart.AddControl(mainGrid);

            _webView.NavigateAsync(_addressTextBox.Text);
        }

        private void OnWebViewLoaded(WebViewLoadedEventArgs args)
        {
            Print($"Webview loaded, IsLoaded: {args.WebView.IsLoaded}");
        }

        private void OnWebViewUnloaded(WebViewUnloadedEventArgs args)
        {
            Print($"Webview unloaded, IsLoaded: {args.WebView.IsLoaded}");
        }

        private void OnStopButtonClick(ButtonClickEventArgs args)
        {
            _webView.StopAsync();
        }

        private void OnExecuteScriptButtonClick(ButtonClickEventArgs args)
        {
            var result = _webView.ExecuteScript(_scriptTextBox.Text);

            Print($"IsSuccessful: {result.IsSuccessful} | Json: {result.Json}");
        }

        private void OnReloadButtonClick(ButtonClickEventArgs args)
        {
            _webView.ReloadAsync();
        }

        private void OnGoForwardButtonClick(ButtonClickEventArgs args)
        {
            _webView.GoForwardAsync();
        }

        private void OnGoBackButtonClick(ButtonClickEventArgs args)
        {
            _webView.GoBackAsync();
        }

        private void OnGoButtonClick(ButtonClickEventArgs args)
        {
            _webView.NavigateAsync(_addressTextBox.Text);
        }

        private void OnWebViewWebMessageReceived(WebViewWebMessageReceivedEventArgs args)
        {
            Print($"Source: {args.Source} | Message: {args.Message}");
        }

        private void OnWebViewNavigationCompleted(WebViewNavigationCompletedEventArgs args)
        {
            Print($"{args.HttpStatusCode} | {args.IsSuccessful} | {args.Url}");

            _addressTextBox.Text = args.Url;
            _scriptTextBox.IsEnabled = true;
            _executeScriptButton.IsEnabled = true;
        }
    }
}
```

Python:

```python
import clr

clr.AddReference("cAlgo.API")

# Import cAlgo API types
from cAlgo.API import *
# Import trading wrapper functions
from robot_wrapper import *

class Test():
    def on_go_back_button_clicked(self, args):
        self.webView.GoBackAsync()

    def on_go_forward_button_clicked(self, args):
        self.webView.GoForwardAsync()

    def on_go_button_clicked(self, args):
        self.webView.NavigateAsync(self.addressTextBox.Text)

    def on_reload_button_clicked(self, args):
        self.webView.ReloadAsync()

    def on_stop_button_clicked(self, args):
        self.webView.StopAsync()

    def on_execute_script_button_clicked(self, args):
        result = self.webView.ExecuteScript(self.scriptTextBox.Text)
        api.Print(f"IsSuccessful: {result.IsSuccessful} | Json: {result.Json}")

    def on_web_view_navigation_completed(self, args):
        api.Print(f"{args.HttpStatusCode} | {args.IsSuccessful} | {args.Url}")
        self.addressTextBox.Text = args.Url
        self.scriptTextBox.IsEnabled = True
        self.executeScriptButton.IsEnabled = True

    def on_start(self):
        goBackButton = Button()
        goBackButton.Text = "←"
        goBackButton.Margin = Thickness(3)
        goBackButton.Click += self.on_go_back_button_clicked

        goForwardButton = Button()
        goForwardButton.Text = "→"
        goForwardButton.Margin = Thickness(3)
        goForwardButton.Click += self.on_go_forward_button_clicked

        self.addressTextBox = TextBox()
        self.addressTextBox.Text = "https://ctrader.com/"
        self.addressTextBox.Margin = Thickness(3)
        self.addressTextBox.Width = 150
        self.addressTextBox.MinWidth = 150
        self.addressTextBox.MaxWidth = 150

        goButton = Button()
        goButton.Text = "→"
        goButton.Margin = Thickness(3)
        goButton.Click += self.on_go_button_clicked

        reloadButton = Button()
        reloadButton.Text = "Reload"
        reloadButton.Margin = Thickness(3)
        reloadButton.Click += self.on_reload_button_clicked

        stopButton = Button()
        stopButton.Text = "x"
        stopButton.Margin = Thickness(3)
        stopButton.Click += self.on_stop_button_clicked

        self.scriptTextBox = TextBox()
        self.scriptTextBox.Text = "alert('Hi')"
        self.scriptTextBox.Margin = Thickness(3)
        self.scriptTextBox.Width = 150
        self.scriptTextBox.MinWidth = 150
        self.scriptTextBox.MaxWidth = 150
        self.scriptTextBox.IsEnabled = False

        self.executeScriptButton = Button()
        self.executeScriptButton.Text = "Execute Script"
        self.executeScriptButton.Margin = Thickness(3)
        self.executeScriptButton.IsEnabled = False
        self.executeScriptButton.Click += self.on_execute_script_button_clicked

        addressBarPanel = StackPanel()
        addressBarPanel.MaxHeight = 50
        addressBarPanel.VerticalAlignment = VerticalAlignment.Top
        addressBarPanel.BackgroundColor = Color.Black
        addressBarPanel.Orientation = Orientation.Horizontal

        addressBarPanel.AddChild(goBackButton)
        addressBarPanel.AddChild(goForwardButton)
        addressBarPanel.AddChild(self.addressTextBox)
        addressBarPanel.AddChild(goButton)
        addressBarPanel.AddChild(reloadButton)
        addressBarPanel.AddChild(stopButton)
        addressBarPanel.AddChild(self.scriptTextBox)
        addressBarPanel.AddChild(self.executeScriptButton)

        self.webView = WebView()
        self.webView.DefaultBackgroundColor = Color.Red
        self.webView.NavigationCompleted += self.on_web_view_navigation_completed
        self.webView.WebMessageReceived += lambda args: api.Print(f"Source: {args.Source} | Message: {args.Message}")
        self.webView.Loaded += lambda args: api.Print(f"Webview loaded, IsLoaded: {args.WebView.IsLoaded}")
        self.webView.Unloaded += lambda args: api.Print(f"Webview unloaded, IsLoaded: {args.WebView.IsLoaded}")

        self.webView.NavigateAsync(self.addressTextBox.Text)

        mainGrid = Grid(2, 1)

        mainGrid.Rows[0].SetHeightToAuto()
        mainGrid.Rows[1].SetHeightInStars(1)

        mainGrid.AddChild(addressBarPanel, 0, 0)
        mainGrid.AddChild(self.webView, 1, 0)

        api.Chart.AddControl(mainGrid)
```

config.json:

```json
{
  "AccessRights": "None"
}
```

C#:

```csharp
using cAlgo.API;

namespace cAlgo.Robots
{
    public partial class WebViewOnWindow : Robot
    {
        private WebView _webView;

        private TextBox _addressTextBox;

        private TextBox _scriptTextbox;

        private Button _executeScriptButton;

        protected override void OnStart()
        {
            var goBackButton = new Button
            {
                Text = "←",
                Margin = 3
            };

            goBackButton.Click += OnGoBackButtonClick;

            var goForwardButton = new Button
            {
                Text = "→",
                Margin = 3
            };

            goForwardButton.Click += OnGoForwardButtonClick;

            _addressTextBox = new TextBox
            {
                Text = "https://ctrader.com/",
                Margin = 3,
                Width = 150,
                MinWidth = 150,
                MaxWidth = 150
            };

            var goButton = new Button
            {
                Text = "→",
                Margin = 3
            };

            goButton.Click += OnGoButtonClick;

            var reloadButton = new Button
            {
                Text = "Reload",
                Margin = 3
            };

            reloadButton.Click += OnReloadButtonClick;

            var stopButton = new Button
            {
                Text = "x",
                Margin = 3
            };

            stopButton.Click += OnStopButtonClick;

            _scriptTextbox = new TextBox
            {
                Text = "alert('Hi');",
                Margin = 3,
                Width = 150,
                MinWidth = 150,
                MaxWidth = 150,
                IsEnabled = false
            };

            _executeScriptButton = new Button
            {
                Text = "Execute Script",
                Margin = 3,
                IsEnabled = false
            };

            _executeScriptButton.Click += OnExecuteScriptButtonClick;

            var addressBarPanel = new StackPanel
            {
                MaxHeight = 50,
                VerticalAlignment = VerticalAlignment.Top,
                BackgroundColor = Color.Black,
                Orientation = Orientation.Horizontal
            };

            addressBarPanel.AddChild(goBackButton);
            addressBarPanel.AddChild(goForwardButton);
            addressBarPanel.AddChild(_addressTextBox);
            addressBarPanel.AddChild(goButton);
            addressBarPanel.AddChild(reloadButton);
            addressBarPanel.AddChild(stopButton);
            addressBarPanel.AddChild(_scriptTextbox);
            addressBarPanel.AddChild(_executeScriptButton);

            _webView = new WebView
            {
                DefaultBackgroundColor = Color.Red
            };

            _webView.NavigationCompleted += OnWebViewNavigationCompleted;
            _webView.WebMessageReceived += OnWebViewWebMessageReceived;
            _webView.Loaded += OnWebViewLoaded;
            _webView.Unloaded += OnWebViewUnloaded;

            var mainGrid = new Grid(2, 1);

            mainGrid.Rows[0].SetHeightToAuto();
            mainGrid.Rows[1].SetHeightInStars(1);

            mainGrid.AddChild(addressBarPanel, 0, 0);
            mainGrid.AddChild(_webView, 1, 0);

            var window = new Window
            {
                Child = mainGrid
            };

            window.Show();

            _webView.NavigateAsync(_addressTextBox.Text);
        }

        private void OnWebViewLoaded(WebViewLoadedEventArgs args)
        {
            Print($"Webview loaded, IsLoaded: {args.WebView.IsLoaded}");
        }

        private void OnWebViewUnloaded(WebViewUnloadedEventArgs args)
        {
            Print($"Webview unloaded, IsLoaded: {args.WebView.IsLoaded}");
        }

        private void OnStopButtonClick(ButtonClickEventArgs args)
        {
            _webView.StopAsync();
        }

        private void OnExecuteScriptButtonClick(ButtonClickEventArgs args)
        {
            var result = _webView.ExecuteScript(_scriptTextbox.Text);

            Print($"IsSuccessful: {result.IsSuccessful} | Json: {result.Json}");
        }

        private void OnReloadButtonClick(ButtonClickEventArgs args)
        {
            _webView.ReloadAsync();
        }

        private void OnGoForwardButtonClick(ButtonClickEventArgs args)
        {
            _webView.GoForwardAsync();
        }

        private void OnGoBackButtonClick(ButtonClickEventArgs args)
        {
            _webView.GoBackAsync();
        }

        private void OnGoButtonClick(ButtonClickEventArgs args)
        {
            _webView.NavigateAsync(_addressTextBox.Text);
        }

        private void OnWebViewWebMessageReceived(WebViewWebMessageReceivedEventArgs args)
        {
            Print($"Source: {args.Source} | Message: {args.Message}");
        }

        private void OnWebViewNavigationCompleted(WebViewNavigationCompletedEventArgs args)
        {
            Print($"{args.HttpStatusCode} | {args.IsSuccessful} | {args.Url}");

            _addressTextBox.Text = args.Url;
            _scriptTextbox.IsEnabled = true;
            _executeScriptButton.IsEnabled = true;
        }
    }
}
```

Python:

```python
import clr

clr.AddReference("cAlgo.API")

# Import cAlgo API types
from cAlgo.API import *
# Import trading wrapper functions
from robot_wrapper import *

class Test():
    def on_go_back_button_clicked(self, args):
        self.webView.GoBackAsync()

    def on_go_forward_button_clicked(self, args):
        self.webView.GoForwardAsync()

    def on_go_button_clicked(self, args):
        self.webView.NavigateAsync(self.addressTextBox.Text)

    def on_reload_button_clicked(self, args):
        self.webView.ReloadAsync()

    def on_stop_button_clicked(self, args):
        self.webView.StopAsync()

    def on_execute_script_button_clicked(self, args):
        result = self.webView.ExecuteScript(self.scriptTextBox.Text)
        api.Print(f"IsSuccessful: {result.IsSuccessful} | Json: {result.Json}")

    def on_web_view_navigation_completed(self, args):
        api.Print(f"{args.HttpStatusCode} | {args.IsSuccessful} | {args.Url}")
        self.addressTextBox.Text = args.Url
        self.scriptTextBox.IsEnabled = True
        self.executeScriptButton.IsEnabled = True

    def on_start(self):
        goBackButton = Button()
        goBackButton.Text = "←"
        goBackButton.Margin = Thickness(3)
        goBackButton.Click += self.on_go_back_button_clicked

        goForwardButton = Button()
        goForwardButton.Text = "→"
        goForwardButton.Margin = Thickness(3)
        goForwardButton.Click += self.on_go_forward_button_clicked

        self.addressTextBox = TextBox()
        self.addressTextBox.Text = "https://ctrader.com/"
        self.addressTextBox.Margin = Thickness(3)
        self.addressTextBox.Width = 150
        self.addressTextBox.MinWidth = 150
        self.addressTextBox.MaxWidth = 150

        goButton = Button()
        goButton.Text = "→"
        goButton.Margin = Thickness(3)
        goButton.Click += self.on_go_button_clicked

        reloadButton = Button()
        reloadButton.Text = "Reload"
        reloadButton.Margin = Thickness(3)
        reloadButton.Click += self.on_reload_button_clicked

        stopButton = Button()
        stopButton.Text = "x"
        stopButton.Margin = Thickness(3)
        stopButton.Click += self.on_stop_button_clicked

        self.scriptTextBox = TextBox()
        self.scriptTextBox.Text = "alert('Hi')"
        self.scriptTextBox.Margin = Thickness(3)
        self.scriptTextBox.Width = 150
        self.scriptTextBox.MinWidth = 150
        self.scriptTextBox.MaxWidth = 150
        self.scriptTextBox.IsEnabled = False

        self.executeScriptButton = Button()
        self.executeScriptButton.Text = "Execute Script"
        self.executeScriptButton.Margin = Thickness(3)
        self.executeScriptButton.IsEnabled = False
        self.executeScriptButton.Click += self.on_execute_script_button_clicked

        addressBarPanel = StackPanel()
        addressBarPanel.MaxHeight = 50
        addressBarPanel.VerticalAlignment = VerticalAlignment.Top
        addressBarPanel.BackgroundColor = Color.Black
        addressBarPanel.Orientation = Orientation.Horizontal

        addressBarPanel.AddChild(goBackButton)
        addressBarPanel.AddChild(goForwardButton)
        addressBarPanel.AddChild(self.addressTextBox)
        addressBarPanel.AddChild(goButton)
        addressBarPanel.AddChild(reloadButton)
        addressBarPanel.AddChild(stopButton)
        addressBarPanel.AddChild(self.scriptTextBox)
        addressBarPanel.AddChild(self.executeScriptButton)

        self.webView = WebView()
        self.webView.DefaultBackgroundColor = Color.Red
        self.webView.NavigationCompleted += self.on_web_view_navigation_completed
        self.webView.WebMessageReceived += lambda args: api.Print(f"Source: {args.Source} | Message: {args.Message}")
        self.webView.Loaded += lambda args: api.Print(f"Webview loaded, IsLoaded: {args.WebView.IsLoaded}")
        self.webView.Unloaded += lambda args: api.Print(f"Webview unloaded, IsLoaded: {args.WebView.IsLoaded}")

        self.webView.NavigateAsync(self.addressTextBox.Text)

        mainGrid = Grid(2, 1)

        mainGrid.Rows[0].SetHeightToAuto()
        mainGrid.Rows[1].SetHeightInStars(1)

        mainGrid.AddChild(addressBarPanel, 0, 0)
        mainGrid.AddChild(self.webView, 1, 0)

        window = Window()
        window.Child = mainGrid
        window.Show()
```

config.json:

```json
{
  "AccessRights": "None"
}
```

## Constructors

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

## Methods

- `public ExecuteScriptResult ExecuteScript(string javaScript)` — Executes JavaScript code from the javaScript parameter in the current top level document rendered in the WebView and returns the result. You can only use this method after control is fully loaded and navigation is completed. [details](https://help.ctrader.com/ctrader-algo/references/Controls/WebView/ExecuteScript/index.md)
- `public void ExecuteScriptAsync(string javaScript)` — Executes JavaScript code from the javaScript parameter in the current top level document rendered in the WebView. You can only use this method after control is fully loaded and navigation is completed. [details](https://help.ctrader.com/ctrader-algo/references/Controls/WebView/ExecuteScriptAsync/index.md)
- `public void ExecuteScriptAsync(string javaScript, Action<ExecuteScriptResult> callback)` — Executes asynchronously JavaScript code from the javaScript parameter in the current top level document rendered in the WebView. You can only use this method after control is fully loaded and navigation is completed. [details](https://help.ctrader.com/ctrader-algo/references/Controls/WebView/ExecuteScriptAsync/index.md)
- `public void GoBackAsync()` — Navigates asynchronously the WebView to the previous page in the navigation history. [details](https://help.ctrader.com/ctrader-algo/references/Controls/WebView/GoBackAsync/index.md)
- `public void GoForwardAsync()` — Navigates asynchronously the WebView to the next page in the navigation history. [details](https://help.ctrader.com/ctrader-algo/references/Controls/WebView/GoForwardAsync/index.md)
- `public void NavigateAsync(string url)` — Navigate asynchronously to another URL. [details](https://help.ctrader.com/ctrader-algo/references/Controls/WebView/NavigateAsync/index.md)
- `public void NavigateToStringAsync(string html)` — Initiates a navigation asynchronously to html content as source HTML of a new document. [details](https://help.ctrader.com/ctrader-algo/references/Controls/WebView/NavigateToStringAsync/index.md)
- `public void OpenDevToolsWindow()` — Opens the DevTools window for the current WebView. [details](https://help.ctrader.com/ctrader-algo/references/Controls/WebView/OpenDevToolsWindow/index.md)
- `public void ReloadAsync()` — Reloads asynchronously the current page. [details](https://help.ctrader.com/ctrader-algo/references/Controls/WebView/ReloadAsync/index.md)
- `public void StopAsync()` — Stops asynchronously all navigations and pending resource fetches. [details](https://help.ctrader.com/ctrader-algo/references/Controls/WebView/StopAsync/index.md)

## Properties

- `public Color DefaultBackgroundColor {get; set;}` — Default background color of WebView. [details](https://help.ctrader.com/ctrader-algo/references/Controls/WebView/DefaultBackgroundColor/index.md)
- `public bool IsLoaded {get;}` — Returns True if WebView is loaded otherwise False. [details](https://help.ctrader.com/ctrader-algo/references/Controls/WebView/IsLoaded/index.md)

## Events

- `public event Action<WebViewLoadedEventArgs> Loaded;` — Occurs after web view is loaded [details](https://help.ctrader.com/ctrader-algo/references/Controls/WebView/Loaded/index.md)
- `public event Action<WebViewNavigationCompletedEventArgs> NavigationCompleted;` — Occurs when navigation of a page is completed. [details](https://help.ctrader.com/ctrader-algo/references/Controls/WebView/NavigationCompleted/index.md)
- `public event Action<WebViewUnloadedEventArgs> Unloaded;` — Occurs after web view is unloaded [details](https://help.ctrader.com/ctrader-algo/references/Controls/WebView/Unloaded/index.md)
- `public event Action<WebViewWebMessageReceivedEventArgs> WebMessageReceived;` — Occurs after web content sends a message [details](https://help.ctrader.com/ctrader-algo/references/Controls/WebView/WebMessageReceived/index.md)

## Inherited members

- `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)

