예제 #1
0
        public static MarkerPainter CreatePainter(DataMarkerType type, PositionAdapter adapter, Color markerColor,
                                                  Control.ControlCollection containers)
        {
            switch (type)
            {
            case DataMarkerType.Square:
                return(new SquareMarkerPainter(adapter, markerColor, containers));

                break;

            case DataMarkerType.Circle:
                return(new CircleMarkerPainter(adapter, markerColor, containers));

                break;

            case DataMarkerType.Diamond:
                return(new DiamondMarkerPainter(adapter, markerColor, containers));

                break;

            case DataMarkerType.Triangle:
                return(new TriangleMarkerPainter(adapter, markerColor, containers));

                break;

            case DataMarkerType.Cross:
                return(new CrossMarkerPainter(adapter, markerColor, containers));

                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(type), type, null);
            }
        }
예제 #2
0
        protected MarkerPainter(DataMarkerType type, PositionAdapter adapter, Color color, Control.ControlCollection container)
        {
            const int defaultMarkerCount = 100;

            this.Type       = type;
            this._adapter   = adapter;
            this.Color      = color;
            this.Markers    = new List <MarkerControl>(defaultMarkerCount);
            this._container = container;
        }
예제 #3
0
        internal void Show(IList <double> xValue, IList <double> yValue, Color markerColor, DataMarkerType markerType, EasyChartXAxis.PlotAxis xAxis, EasyChartXAxis.PlotAxis yAxis)
        {
            if (null == xValue || null == yValue || 0 == xValue.Count || 0 == yValue.Count || xValue.Count != yValue.Count)
            {
                throw new ArgumentException("Invalid Marker data.");
            }
            this._shownCount++;
            if (_painters.Count < _shownCount || markerType != _painters[_shownCount - 1].Type)
            {
                MarkerPainter painter = MarkerPainter.CreatePainter(markerType, _adapter, markerColor, _baseChart.Controls);
                while (_painters.Count > _shownCount)
                {
                    _painters.RemoveAt(_painters.Count - 1);
                }
                _painters.Add(painter);
            }
            if (!_isShown)
            {
                _adapter.RefreshPosition();
            }
            int index = _shownCount - 1;

            _painters[index].Initialize(markerColor, MarkerSize, xAxis, yAxis, _parentPlotArea);
            _painters[index].InitializeMarkerControls(xValue, yValue);
            _painters[index].RefreshMarkerPosition();
            this.IsShown = true;
        }