RobotNet/RobotNet.WebApp/Charts/Models/BarChart/Axes/ChartAxesGrid.cs
2025-10-15 15:15:53 +07:00

83 lines
2.8 KiB
C#

using System.Text.Json.Serialization;
namespace RobotNet.WebApp.Charts.Models.BarChart.Axes;
public class ChartAxesGrid
{
/// <summary>
/// If <see langword="true" />, gridlines are circular (on radar and polar area charts only).
/// </summary>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public bool? Circular { get; set; }
/// <summary>
/// Color of the grid axis lines. Here one can write a CSS method or even a JavaScript method for a dynamic color.
/// </summary>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public string? Color { get; set; }
/// <summary>
/// If false, do not display grid lines for this axis.
/// </summary>
public bool Display { get; set; } = true;
/// <summary>
/// If <see langword="true" />, draw lines on the chart area inside the axis lines. This is useful when there are multiple
/// axes and you need to control which grid lines are drawn.
/// </summary>
public bool DrawOnChartArea { get; set; } = true;
/// <summary>
/// If <see langword="true" />, draw lines beside the ticks in the axis area beside the chart.
/// </summary>
public bool DrawTicks { get; set; } = true;
/// <summary>
/// Stroke width of grid lines.
/// </summary>
public int LineWidth { get; set; } = 1;
/// <summary>
/// If <see langword="true" />, grid lines will be shifted to be between labels. This is set to true for a bar chart by
/// default.
/// </summary>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public bool? Offset { get; set; } = false;
/// <summary>
/// Length and spacing of the tick mark line.
/// </summary>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public List<int>? TickBorderDash { get; set; }
/// <summary>
/// Offset for the line dash of the tick mark.
/// </summary>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public int? TickBorderDashOffset { get; set; }
/// <summary>
/// Color of the tick line. If unset, defaults to the grid line color.
/// </summary>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public string? TickColor { get; set; }
/// <summary>
/// Length in pixels that the grid lines will draw into the axis area.
/// </summary>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public int? TickLength { get; set; }
/// <summary>
/// Width of the tick mark in pixels.
/// </summary>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public int? TickWidth { get; set; }
/// <summary>
/// z-index of the gridline layer. Values <= 0 are drawn under datasets, > 0 on top.
/// </summary>
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public int? Z { get; set; }
}