예제 #1
0
        /// <summary>
        /// When the mouse wheel event occurs, this forwards the event to this control.
        /// </summary>
        /// <param name="delta">The delta.</param>
        /// <param name="x">The x.</param>
        public void DoMouseWheel(int delta, float x)
        {
            double val = _graph.GetValue(x);

            if (delta > 0)
            {
                _graph.Minimum += ((val - _graph.Minimum) / 2);
                _graph.Maximum -= ((_graph.Maximum - val) / 2);
            }
            else
            {
                _graph.Minimum -= (val - _graph.Minimum);
                _graph.Maximum += (_graph.Maximum - val);
            }

            if (_isRaster)
            {
                if (_graph.Minimum < _rasterSymbolizer.Scheme.Statistics.Minimum)
                {
                    _graph.Minimum = _rasterSymbolizer.Scheme.Statistics.Minimum;
                }

                if (_graph.Maximum > _rasterSymbolizer.Scheme.Statistics.Maximum)
                {
                    _graph.Maximum = _rasterSymbolizer.Scheme.Statistics.Maximum;
                }
            }
            else
            {
                if (_graph.Minimum < _scheme.Statistics.Minimum)
                {
                    _graph.Minimum = _scheme.Statistics.Minimum;
                }

                if (_graph.Maximum > _scheme.Statistics.Maximum)
                {
                    _graph.Maximum = _scheme.Statistics.Maximum;
                }
            }

            FillBins();
            UpdateBreaks();
            Invalidate();
        }