duheng
2025-03-28 b266e82b9a377fa35a766f7a3a2f5aa95f3c9125
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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);
        }
    }
}