From b159dcad4715a596f314f8f1fd3fe55a23db26da Mon Sep 17 00:00:00 2001 From: mzhifa Date: Sun, 9 Apr 2023 23:08:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8F=B0=E7=AB=99=E7=9A=84?= =?UTF-8?q?=E8=80=B6=E9=9A=90=E8=97=8F=E5=92=8C=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ViewModels/ChartPlotViewModel.cs | 58 ++++++++++++++++++- .../Views/ChartPlotView.xaml | 2 + 2 files changed, 57 insertions(+), 3 deletions(-) diff --git a/mseedChart.MainModule/ViewModels/ChartPlotViewModel.cs b/mseedChart.MainModule/ViewModels/ChartPlotViewModel.cs index 9c3f1aa..5d87e25 100644 --- a/mseedChart.MainModule/ViewModels/ChartPlotViewModel.cs +++ b/mseedChart.MainModule/ViewModels/ChartPlotViewModel.cs @@ -8,6 +8,7 @@ using mseedChart.MainModule.Models; using Prism.Commands; using Prism.Events; using Prism.Mvvm; +using SharpDX.Direct2D1; using SharpDX.DirectWrite; using System; using System.Collections; @@ -154,13 +155,42 @@ namespace mseedChart.MainModule.ViewModels public StationEventJson CurrentEventTime { + get { return _currentEventTime; } set { _currentEventTime = value; } } + private List _stationYaxis; + + public List StationYaxis + { + get { return _stationYaxis; } + set { + SetProperty(ref _stationYaxis, value); + } + } + private int _selectStationYaxisIndex; + + public int SelectStationYaxisIndex + { + get { return _selectStationYaxisIndex; } + set { + + SetProperty(ref _selectStationYaxisIndex, value); + } + } + private bool _stationYaxisIsChecked; + public bool StationYaxisIsChecked + { + get { return _stationYaxisIsChecked; } + set { + StationYaxisVisible(value); + SetProperty(ref _stationYaxisIsChecked , value); + } + } #endregion #region 事件 @@ -310,14 +340,36 @@ namespace mseedChart.MainModule.ViewModels { _lChartAll.ViewXY.XAxes[0].MajorDivCount = XaisInterval; } + _lChartAll.EndUpdate(); + } + } + private void StationYaxisVisible(bool visible) + { + if (_lChartAll != null) + { + _lChartAll.BeginUpdate(); + bool yAxesVisible = ((bool)visible == true); + ViewXY v = _lChartAll.ViewXY; + for (int i = 0; i < v.YAxes.Count; i++) + { + AxisY axisY = v.YAxes[i]; + if (axisY.Title.Text.Contains(StationYaxis[SelectStationYaxisIndex])) + { + axisY.Visible = !yAxesVisible; + v.SampleDataSeries[i].Visible = !yAxesVisible; + int index = v.LineCollections.FindIndex(a => a.AssignYAxisIndex == i); + if (index != -1) + { + v.LineCollections[index].Visible = !yAxesVisible; + } + } + } _lChartAll.EndUpdate(); - } } - #endregion public List UpdateWavesFromTxt(string fn) { @@ -505,11 +557,11 @@ namespace mseedChart.MainModule.ViewModels } _channelCount = smList.Count * 3; + StationYaxis = smList.Select(a => a.Name).ToList(); UpdateChart(); UpdateChartData(); } - private void UpdateChart() { ViewXY v= LChartALL.ViewXY; diff --git a/mseedChart.MainModule/Views/ChartPlotView.xaml b/mseedChart.MainModule/Views/ChartPlotView.xaml index afdc7aa..75a9901 100644 --- a/mseedChart.MainModule/Views/ChartPlotView.xaml +++ b/mseedChart.MainModule/Views/ChartPlotView.xaml @@ -19,6 +19,8 @@ VerticalAlignment="Top" Margin="0,162,0,0" Grid.Row="1" /> + +