在我的WinForms应用程序中,我使用这些设置进行Chart控制:
chartArea.CursorX.IsUserEnabled = true;
chartArea.CursorX.IsUserSelectionEnabled = true;
chartArea.AxisX.ScaleView.Zoomable = false;
其中chartArea
是我的Chart控件中的主要(且唯一)ChartArea对象。
我想要做的是选择区域的可能性(可能已经存在),当鼠标在这个区域上方时,如果我在所选区域内单击图表cotrol,我也不会放大。< / p>
这里的第一个问题是如何检测我是否超过选定区域?使用chart.HitTest()
,我可以获得HitTestResult.PointIndex
字段值,并将其与选择范围进行比较。但是这只有在鼠标完全超过DataPoint的情况下才有效。所以我正在使用的SeriesChartType.FastLine
无效。
如果以某种方式解决了这个问题,那么在鼠标点击之后(在调用Click
或MouseXXX
事件之前)选择取消就会出现问题。
解决
我找到了axis.PixelPositionToValue()
方法,它给了我所需的每一个信息,因为从MouseMove事件参数我有像素位置。
对于点击事件问题,我会写另一个问题。
答案 0 :(得分:0)