From 97e1e604737e70a9df2e83897d3bbf68292d0d72 Mon Sep 17 00:00:00 2001 From: Shuxia Ning <NingShuxia0927@outlook.com> Date: 星期四, 19 十二月 2024 20:21:52 +0800 Subject: [PATCH] 代码修改 --- WinFrmUI/Yw.WinFrmUI.Phart.Core/02-universal/02-edit/UniversalEditChart.cs | 101 ++++++++++++++++++++++++++++---------------------- 1 files changed, 57 insertions(+), 44 deletions(-) diff --git a/WinFrmUI/Yw.WinFrmUI.Phart.Core/02-universal/02-edit/UniversalEditChart.cs b/WinFrmUI/Yw.WinFrmUI.Phart.Core/02-universal/02-edit/UniversalEditChart.cs index d4c7b94..7e579d1 100644 --- a/WinFrmUI/Yw.WinFrmUI.Phart.Core/02-universal/02-edit/UniversalEditChart.cs +++ b/WinFrmUI/Yw.WinFrmUI.Phart.Core/02-universal/02-edit/UniversalEditChart.cs @@ -19,10 +19,12 @@ private XYDiagram _diagram; private XYDiagramDefaultPane _default_pane; private AxisX _axis_x; - private AxisY _axis_y; + private AxisY _axis_y; private List<Yw.Geometry.Point2d> _point_pt_list; private List<Yw.Geometry.Point2d> _line_pt_list; + + private Series _series_pt; private UniversalCoordinate _coordinate; private bool _initial_data = false; @@ -113,19 +115,15 @@ _diagram = (XYDiagram)chartControl1.Diagram; _default_pane=_diagram.DefaultPane; - _axis_x = _diagram.AxisX; - //_axis_x.SetAxisXQDisplay(); + _axis_x = _diagram.AxisX; _axis_y = _diagram.AxisY; - //_axis_y.SetAxisYQLDisplay(); - - + _axis_x.Visibility = DefaultBoolean.False; _axis_x.GridLines.Visible = false; _axis_y.Visibility = DefaultBoolean.False; _axis_y.GridLines.Visible = false; - - + this.chartControl1.SetChartMonoColorDisplay(); } @@ -151,12 +149,32 @@ /// <summary> /// 缁戝畾鏁版嵁 /// </summary> + public void Clear() + { + _initial_data = false; + _point_pt_list = null; + _line_pt_list = null; + _coordinate = null; + _series_pt = null; + + this.chartControl1.BeginInit(); + this.chartControl1.Series.Clear(); + this.chartControl1.AnnotationRepository.Clear(); + this.chartControl1.Legend.CustomItems.Clear(); + this.chartControl1.EndInit(); + } + + + /// <summary> + /// 缁戝畾鏁版嵁 + /// </summary> public void SetBindingData(List<Yw.Geometry.Point2d> point_pt_list, List<Yw.Geometry.Point2d> line_pt_list, string coordinate = null, Color? color = null) { _initial_data = false; _point_pt_list = point_pt_list; _line_pt_list = line_pt_list; _coordinate = UniversalCoordinate.ToModel(coordinate); + _series_pt = null; this.chartControl1.BeginInit(); this.chartControl1.Series.Clear(); @@ -168,16 +186,15 @@ this.chartControl1.EndInit(); return; } - - AddPointSeries(color.Value, _axis_x, _axis_y, _default_pane, _point_pt_list); - AddLineSeries(color.Value, _axis_x, _axis_y, _default_pane, _line_pt_list); + + _series_pt = AddPointSeries(color.Value, _axis_x, _axis_y, _default_pane, _point_pt_list); + AddLineSeries(color.Value, _axis_x, _axis_y, _default_pane, _line_pt_list); if (_coordinate == null) SetCoordinate(); SetChartAxis(); this.chartControl1.EndInit(); _initial_data = true; - } //鏄惁鏄棤鏁堟暟鎹� @@ -193,15 +210,17 @@ { return true; } + if (_series_pt == null) + return true; return false; } #region Add Chart Data - private void AddPointSeries(Color color, AxisXBase axis_x, AxisYBase axis_y, XYDiagramPaneBase pane, List<Yw.Geometry.Point2d> pt_list) + private Series AddPointSeries(Color color, AxisXBase axis_x, AxisYBase axis_y, XYDiagramPaneBase pane, List<Yw.Geometry.Point2d> pt_list) { if (pt_list == null || !pt_list.Any()) - return; + return null; var view = new DevExpress.XtraCharts.PointSeriesView(); view.PointMarkerOptions.Size = 8; @@ -234,6 +253,8 @@ series.CrosshairLabelPattern = "{A}"; series.Points.AddRange(series_pt_list.ToArray()); this.chartControl1.Series.Add(series); + + return series; } private void AddLineSeries(Color color, AxisXBase axis_x, AxisYBase axis_y, XYDiagramPaneBase pane, List<Yw.Geometry.Point2d> pt_list, DashStyle dash = DashStyle.Solid) @@ -365,38 +386,37 @@ #endregion Calc #region ChartEvent - - private SeriesPoint _pick_point = null;// 閫変腑鐐� + + private int _pick_point_index = -1; private void chartControl1_MouseDown(object sender, MouseEventArgs e) { if (!_initial_data) return; var hitInfo = chartControl1.CalcHitInfo(e.Location); - _pick_point = null; + _pick_point_index = -1; if (e.Button == MouseButtons.Left) { - if (hitInfo.InSeriesPoint && hitInfo.SeriesPoint.Tag is int) + if (hitInfo.InSeriesPoint && hitInfo.SeriesPoint.Tag is int index) { - _pick_point = hitInfo.SeriesPoint; + _pick_point_index = index; } } } - private void chartControl1_MouseMove(object sender, MouseEventArgs e) { if (!_mouse_mode) return; - if (IsInvalidData()) + if (_pick_point_index < 0) return; - if (_pick_point == null) + if (IsInvalidData()) return; var diagram_coordinates = _diagram.PointToDiagram(e.Location); var axis_value = diagram_coordinates.GetAxisValue(_axis_y); if (axis_value == null) return; - _pick_point.Values[0] = axis_value.NumericalValue; - _pick_point.NumericalArgument = diagram_coordinates.NumericalArgument; + _series_pt.Points[_pick_point_index].Values[0] = axis_value.NumericalValue; + _series_pt.Points[_pick_point_index].NumericalArgument = diagram_coordinates.NumericalArgument; } @@ -404,32 +424,28 @@ { if (!_mouse_mode) return; + if (_pick_point_index < 0) + return; if (IsInvalidData()) - return; - if (_pick_point == null) - return; - if (_pick_point.Tag is not int index) - return; - var x = _pick_point.NumericalArgument; - var y = _pick_point.Values[0]; - SetPointPtValue(index, x, y); - - _pick_point = null; + return; + var x = _series_pt.Points[_pick_point_index].NumericalArgument; + var y = _series_pt.Points[_pick_point_index].Values[0]; + SetPointValue(_pick_point_index, x, y); + _pick_point_index = -1; } - private void chartControl1_KeyUp(object sender, KeyEventArgs e) { - if (!_initial_data) + if (_mouse_mode) return; - if (_pick_point == null) + if (_pick_point_index < 0) return; if (IsInvalidData()) return; double space_x = _coordinate.CoordSpaceX / 50; double space_y = _coordinate.CoordSpaceY / 50; - double x = _pick_point.NumericalArgument; - double y = _pick_point.Values[0]; + double x = _series_pt.Points[_pick_point_index].NumericalArgument; + double y = _series_pt.Points[_pick_point_index].Values[0]; if (e.KeyCode == Keys.Up) { y += space_y; @@ -446,17 +462,14 @@ { x += space_x; } - _pick_point.Values[0] = y; - _pick_point.NumericalArgument = x; - var index = _pick_point.Tag.is - SetPointPtValue(); + SetPointValue(_pick_point_index, x, y); } /// <summary> /// 鏇存柊鏁版嵁 /// </summary> - private void SetPointPtValue(int index, double x, double y) + private void SetPointValue(int index, double x, double y) { if (IsInvalidData()) return; -- Gitblit v1.9.3