using cAlgo.API;
namespace cAlgo
{
// このサンプルは、Gridパネルコントロールの使い方を示します。
[Indicator(IsOverlay = true, TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
public class GridSample : Indicator
{
[Parameter("Grid Rows #", DefaultValue = 10)]
public int GridRowsNumber { get; set; }
[Parameter("Grid Columns #", DefaultValue = 2)]
public int GridColumnsNumber { get; set; }
[Parameter("Grid Row Length", DefaultValue = 2)]
public int GridRowLength { get; set; }
[Parameter("Grid Row Length Unit Type", DefaultValue = GridUnitType.Auto)]
public GridUnitType GridRowLengthUnitType { get; set; }
[Parameter("Grid Column Length", DefaultValue = 2)]
public int GridColumnLength { get; set; }
[Parameter("Grid Column Length Unit Type", DefaultValue = GridUnitType.Auto)]
public GridUnitType GridColumnLengthUnitType { get; set; }
protected override void Initialize()
{
var grid = new Grid(GridRowsNumber, GridColumnsNumber)
{
BackgroundColor = Color.Gold,
Opacity = 0.6,
HorizontalAlignment = HorizontalAlignment.Center,
VerticalAlignment = VerticalAlignment.Center,
ShowGridLines = true,
};
for (int iRow = 0; iRow < GridRowsNumber; iRow++)
{
var row = grid.Rows[iRow];
SetGridRowLength(row);
for (int iColumn = 0; iColumn < GridColumnsNumber; iColumn++)
{
var column = grid.Columns[iColumn];
SetGridColumnLength(column);
grid.AddChild(new TextBlock
{
Text = string.Format("Row {0} and Column {1}", iRow, iColumn),
Margin = 5,
ForegroundColor = Color.Black,
FontWeight = FontWeight.ExtraBold
}, iRow, iColumn);
}
}
Chart.AddControl(grid);
}
private void SetGridRowLength(GridRow row)
{
switch (GridRowLengthUnitType)
{
case GridUnitType.Auto:
row.SetHeightToAuto();
break;
case GridUnitType.Pixel:
row.SetHeightInPixels(GridRowLength);
break;
case GridUnitType.Star:
row.SetHeightInStars(GridRowLength);
break;
}
}
private void SetGridColumnLength(GridColumn <span="n">column)
{
switch (GridColumnLengthUnitType<span="p">)
{
case GridUnitType.Auto<span="p">:
column<span="p">.SetWidthToAuto<span="p">();
break<span="p">;
case GridUnitType.Pixel<span="p">:
column<span="p">.SetWidthInPixels<span="p">(GridColumnLength<span="p">);
break<span="p">;
case GridUnitType<span="p">.<span="n">Star<span="p">:
column<span="p">.<span="n">SetWidthInStars<span="p">(GridColumnLength<span="p">);
break<span="p">;
}
}
public override void Calculate(int index<span="p">)
{
<span="p">}
<span="p">}
<span="p">}