using DevExpress.Utils;
|
using DevExpress.XtraCharts;
|
|
namespace Yw.WinFrmUI.Phart
|
{
|
public partial class TestDlg : DevExpress.XtraEditors.XtraForm
|
{
|
public TestDlg()
|
{
|
InitializeComponent();
|
}
|
|
public event Func<List<double>, bool> VerifyValueChanged;
|
|
public void SetBindingData(List<ValveEditChartViewModel> vm_list)
|
{
|
var xy_dig = this.chartControl1.Diagram as XYDiagram;
|
foreach (var vm in vm_list)
|
{
|
var pt_list = vm.DefPointList.Select(x => new Yw.Geometry.Point2d(x.Y, x.X)).ToList();
|
var curve = new Yw.Ahart.CurveQL(Yw.Ahart.eFeatType.Quadratic, pt_list);
|
var fit_pt_list = curve.FeatCurve.GetPointList(50);
|
AddLineSeries(xy_dig.AxisX, xy_dig.AxisY, xy_dig.DefaultPane, fit_pt_list);
|
}
|
}
|
|
private void AddLineSeries(AxisXBase axis_x, AxisYBase axis_y, XYDiagramPaneBase pane, List<Yw.Geometry.Point2d> pt_list, DashStyle dash = DashStyle.Solid)
|
{
|
if (pt_list == null || !pt_list.Any())
|
return;
|
|
var view = new DevExpress.XtraCharts.LineSeriesView();
|
view.LineStyle.DashStyle = dash;
|
view.LineStyle.LineJoin = System.Drawing.Drawing2D.LineJoin.Round;
|
view.LineStyle.Thickness = 2;
|
view.EnableAntialiasing = DefaultBoolean.True;
|
view.MarkerVisibility = DefaultBoolean.False;
|
view.AxisX = axis_x;
|
view.AxisY = axis_y;
|
view.EmptyPointOptions.Color = Color.Transparent;
|
view.Pane = pane;
|
|
var series_pt_list = pt_list.Select(x => x.ToSeriesPoint()).ToArray();
|
var series = new DevExpress.XtraCharts.Series();
|
series.ShowInLegend = false;
|
series.ArgumentScaleType = DevExpress.XtraCharts.ScaleType.Numerical;
|
series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.False;
|
series.CrosshairEnabled = DefaultBoolean.False;
|
series.ToolTipEnabled = DefaultBoolean.False;
|
series.SeriesPointsSorting = SortingMode.None;
|
series.Visible = true;
|
series.View = view;
|
series.Points.AddRange(series_pt_list);
|
|
this.chartControl1.Series.Add(series);
|
}
|
}
|
}
|