예제 #1
0
        private void chart1_MouseMove(object sender, MouseEventArgs e)
        {
            var pos = e.Location;

            if (_prevPosition.HasValue && pos == _prevPosition.Value)
            {
                return;
            }
            _tooltip.RemoveAll();
            _prevPosition = pos;
            var results = chrtUren.HitTest(pos.X, pos.Y, false, ChartElementType.DataPoint);

            foreach (var result in results)
            {
                if (result.ChartElementType != ChartElementType.DataPoint)
                {
                    continue;
                }
                var prop = result.Object as DataPoint;
                if (prop == null || chrtUren.Series[1].Points.Contains(prop))
                {
                    continue;
                }
                var pointXPixel = result.ChartArea.AxisX.ValueToPixelPosition(prop.XValue);
                var pointYPixel = result.ChartArea.AxisY.ValueToPixelPosition(prop.YValues[0]);

                if (Math.Abs(pos.X - pointXPixel) < 2 && Math.Abs(pos.Y - pointYPixel) < 2)
                {
                    _tooltip.Show(StringLayer.GetToolTip(prop), chrtUren, pos.X, pos.Y - 15);
                }
            }
        }