DiagramCoordinates.ArgumentScaleType Property
Gets the type of the argument scale.
Namespace: DevExpress.XtraCharts
Assembly: DevExpress.XtraCharts.v24.1.dll
NuGet Package: DevExpress.Charts
Declaration
Property Value
Type | Description |
---|---|
ScaleType | A ScaleType object, representing the scale type for the argument data of the data point. |
Available values:
Name | Description |
---|---|
Qualitative | Identifies the Qualitative data scale. This means that data provided for the Series.Points will be treated as qualitative values and will be shown on the axis as textual representations (e.g., A, B, and C). |
Numerical | Identifies the Numerical data scale. This means that data provided for the Series.Points will be treated as numerical values and will be shown on the axis as numbers (e.g., 100, 200, and 300). Note that in this case the AxisBase.NumericOptions property is used to define the output format of numerical values shown on the axis. |
DateTime | Identifies the DateTime data scale. This means that data provided for the Series.Points will be treated as DateTime values and will be shown on the axis as DateTime values (e.g., January, 2003, January, 2004, and January, 2005). Note that in this case the AxisBase.DateTimeOptions property is used to define the output format of DateTime values shown on the axis. |
TimeSpan | Identifies the TimeSpan data scale. The data that you provide for the Series.Points will be treated and shown on the axis as TimeSpan values (for example, 00:00:00, 00:00:01, 00:00:02). Note that in this case, the axis’s TimeSpanScaleOptions property allows you to specify the scale-related settings. To define the output format of TimeSpan values shown on the axis, use the AxisBase.Label‘s TextPattern property. |
Auto | The scale type is automatically determined according to the real type of underlying data. |
Example
The following example illustrates use of XYDiagram2D.PointToDiagram method for dragging the constant line with the mouse, and changing the series point values accordingly.
using System;
using System.Windows.Forms;
using DevExpress.XtraCharts;
namespace InteractiveConstantLine {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
Cursor defCursor;
bool dragging = false;
ChartControl chart;
XYDiagram diagram;
ConstantLine line;
private void Form1_Load(object sender, EventArgs e) {
this.chart = this.chartControl1;
this.diagram = this.chart.Diagram as XYDiagram;
this.line = this.diagram.AxisX.ConstantLines.GetConstantLineByName("ConstantLine1");
// Add a title to the chart.
ChartTitle chartTitle1 = new ChartTitle();
chartTitle1.Text = "Drag the constant line...";
this.chart.Titles.Add(chartTitle1);
}
private void chartControl1_MouseDown(object sender, MouseEventArgs e) {
if (diagram == null)
return;
// Get the information about the clicked point.
DiagramCoordinates coords = diagram.PointToDiagram(e.Location);
// If the point is within the diagram and in the constant line ...
if (!coords.IsEmpty && line.AxisValue is DateTime &&
coords.DateTimeArgument.Equals((DateTime)line.AxisValue)) {
// Allow dragging, catch the mouse and change the cursor.
dragging = true;
chart.Capture = true;
SetCursor();
}
}
private void chartControl1_MouseUp(object sender, MouseEventArgs e) {
dragging = false;
chart.Capture = false;
}
private void chartControl1_MouseMove(object sender, MouseEventArgs e) {
if (diagram == null)
return;
if (dragging && (e.Button & MouseButtons.Left) == 0) {
dragging = false;
chart.Capture = false;
}
DiagramCoordinates coords = diagram.PointToDiagram(e.Location);
if (coords.IsEmpty)
RestoreCursor();
else {
if (dragging)
line.AxisValue = coords.DateTimeArgument;
if (line.AxisValue is DateTime && coords.DateTimeArgument.Equals((DateTime)line.AxisValue))
SetCursor();
else
RestoreCursor();
}
}
void SetCursor() {
if (defCursor == null)
defCursor = Cursor.Current;
Cursor.Current = Cursors.VSplit;
}
void RestoreCursor() {
if (defCursor != null) {
Cursor.Current = defCursor;
defCursor = null;
}
}
}
}