【发布时间】:2011-07-08 14:05:58
【问题描述】:
在我的 WinForms 应用程序中,我有带有这些设置的图表控件:
chartArea.CursorX.IsUserEnabled = true;
chartArea.CursorX.IsUserSelectionEnabled = true;
chartArea.AxisX.ScaleView.Zoomable = false;
chartArea 是我的 Chart 控件中的主要(也是唯一)ChartArea 对象。
我正在尝试做的是选择区域的可能性(已经有可能),当鼠标悬停在该区域上时,如果我在该选定区域内左键单击图表控件,我不想放大。
这里的第一个问题是如何检测我是否超出了选定区域?使用chart.HitTest() 我可以获得HitTestResult.PointIndex 字段值并将其与选择范围进行比较。但这只有在鼠标正好在 DataPoint 上时才有效。所以它对我正在使用的SeriesChartType.FastLine 不起作用。
如果以某种方式解决了这个问题,接下来将是鼠标单击后取消选择的问题(在调用 Click 或 MouseXXX 事件之前)。
已解决
我找到了axis.PixelPositionToValue() 方法,它提供了我需要的所有信息,因为从 MouseMove 事件参数我有像素位置。
对于点击事件问题,我会写另一个问题。
【问题讨论】:
标签: c# visual-studio charts