В моем приложении WinForms у меня есть элемент управления Chart с такими настройками:
chartArea.CursorX.IsUserEnabled = true;
chartArea.CursorX.IsUserSelectionEnabled = true;
chartArea.AxisX.ScaleView.Zoomable = false;
, где chartArea
является основным (и единственным) объектом ChartArea в моем элементе управления Chart.
Что яПопытка сделать это - возможность выбора области (это уже возможно), и когда мышь находится над этой областью, и если я щелкну левой кнопкой мыши по диаграмме внутри этой выделенной области, я не хочу ее увеличивать.
Сначалапроблема здесь в том, как определить, находится ли я над выбранной областью?с помощью chart.HitTest()
я могу получить HitTestResult.PointIndex
значение поля и сравнить его с диапазоном выбора.Но это работает, только если мышь находится точно над DataPoint.Так что не работает для SeriesChartType.FastLine
, который я использую.
Если это как-то решится, следующей будет проблема с отменой выбора после щелчка мыши (до Click
или *Вызывается 1017 * событий).
решено
Я нашел axis.PixelPositionToValue()
метод, который дает мне всю необходимую информацию, потому что из события MouseMoveаргументы у меня есть позиция пикселя.Для проблемы событий щелчка я напишу другой вопрос.