Exemple #1
0
        private void AdaptMainPlotAreaAxesRange(double maxXRange, double minXRange)
        {
            double maxYRange;
            double minYRange;

            if (MainPlotArea.AxisY.AutoScale)
            {
                _plotManager.GetMaxAndMinYValue(MainPlotArea, out maxYRange, out minYRange);
            }
            else
            {
                maxYRange = double.NaN;
                minYRange = double.NaN;
            }
            MainPlotArea.AdaptPrimaryAxes(maxXRange, minXRange, maxYRange, minYRange);

            // 默认不同步,如果需要打开在AdaptSecondaryAxes方法中打开
            MainPlotArea.YAxisSync.NeedSync = false;
            if (_plotManager.HasSeriesInYAxis(MainPlotArea, EasyChartXAxis.PlotAxis.Secondary))
            {
                double maxY2Range;
                double minY2Range;
                if (MainPlotArea.AxisY2.AutoScale)
                {
                    _plotManager.GetMaxAndMinY2Value(MainPlotArea, out maxY2Range, out minY2Range);
                }
                else
                {
                    MainPlotArea.AxisY2.GetSpecifiedRange(out maxY2Range, out minY2Range);
                }
                MainPlotArea.AdaptSecondaryAxes(maxXRange, minXRange, maxY2Range, minY2Range);
            }
        }
        // TODO 暂时只同步Y轴和Y2轴,X轴的后期再说
        /// <summary>
        /// 更新坐标轴和游标:坐标轴的范围、缩放视图、缩放参数;游标绑定的坐标、游标缩放参数
        /// </summary>
        public void RefreshAxesAndCursors()
        {
            double maxXRange = _plotManager.GetMaxXData();
            double minXRange = _plotManager.GetMinXData();

            // 如果X轴上下范围相同,则向前向后加1个间隔
            if (Math.Abs(maxXRange - minXRange) < Constants.MinDoubleValue)
            {
                maxXRange += 1;
                minXRange -= 1;
            }
            double minXInterval = _plotManager.GetMinXInterval();
            double minYInterval;

            if (!_isSplitView)
            {
                AdaptMainPlotAreaAxesRange(maxXRange, minXRange);
                minYInterval = GetMinYInterval(MainPlotArea);
                MainPlotArea.AdaptCursors(minXInterval, minYInterval);
            }
            else
            {
                for (int i = 0; i < SplitPlotAreas.Count; i++)
                {
                    AdaptSplitPlotAreaAxesRange(i, maxXRange, minXRange);
                    minYInterval = GetMinYInterval(SplitPlotAreas[i]);
                    SplitPlotAreas[i].AdaptCursors(minXInterval, minYInterval);
                }
            }
        }
Exemple #3
0
 public void Clear()
 {
     MainPlotArea.Clear();
     foreach (EasyChartXPlotArea splitPlotArea in SplitPlotAreas)
     {
         splitPlotArea.Clear();
     }
 }
        // TODO 暂时只同步Y轴和Y2轴,X轴的后期再说
        /// <summary>
        /// 更新坐标轴和游标:坐标轴的范围、缩放视图、缩放参数;游标绑定的坐标、游标缩放参数
        /// </summary>
        public void RefreshAxesAndCursors()
        {
            double minXInterval = _plotManager.GetMinXInterval();
            double minYInterval;

            if (!_isSplitView)
            {
                AdaptMainPlotAreaAxesRange();
                minYInterval = GetMinYInterval(MainPlotArea);
                MainPlotArea.AdaptCursors(minXInterval, minYInterval);
            }
            else
            {
                for (int i = 0; i < SplitPlotAreas.Count; i++)
                {
                    AdaptSplitPlotAreaAxesRange(i);
                    minYInterval = GetMinYInterval(SplitPlotAreas[i]);
                    SplitPlotAreas[i].AdaptCursors(minXInterval, minYInterval);
                }
            }
        }