.NET 4图表,在ZOOM IN/OUT和滚动后检索范围



我正在.NET 4中创建Chart,Chart(Visual Basic,VS2010)。我在图表中启用缩放(按光标X、Y)和滚动条使用。我需要知道用户放大/缩小和滚动(滚动条使用)后选择(显示)的当前范围(对于Ax X)。

我可以使用本主题中的方法获得放大后的选定范围:

如何在.Net WinForms图表控件中检索选定的范围?

这很好,但仅适用于ZOOM IN,而不适用于Scrolling/ZOOM OUT(通过鼠标点击滚动条的起始位置缩小-缩放重置)。

我试着检查了两个SelectionRangeChangIN/CHANGED,但这些FIRE/工作都没有用于ZOOM OUT/Scroll。

有其他想法如何获得当前选定(可见)范围的图表吗?我可以接受(作为某种近似解决方案)找出当前第一个/最后一个VISIBLE X Ax标签。

我需要当前图表打印的选定范围来显示打印图表的开始/结束日期。我检查了.NET Windows窗体图表控件工具(有200个示例和C/VB中的源代码),但这并没有涵盖在内。

已解决!我添加了鼠标滚轮缩放:

如何使用鼠标滚轮在Microsoft图表控件中启用缩放

现在我可以通过捕捉获得当前选择:

  1. 开火时用鼠标放大(选择三角形):SelectionRangeChanged/Changing
  2. 火灾时缩放/滚动条:AxisViewChanged
  3. 火灾时鼠标滚轮放大/缩小:鼠标滚轮

我使用AxisX.ScaleView.ViewMinimum和AxisX.Scale View.ViewMaximum,在这三种情况下似乎都可以。这是我的一些跟踪样本。变量dSelDol。dSelHor是Double。

Private Sub HDGraf_AxisViewChanged(sender As System.Object, e As System.Windows.Forms.DataVisualization.Charting.ViewEventArgs) Handles HDGraf.AxisViewChanging, _
    HDGraf.AxisViewChanged
    Zobraz("Axis View Changed/ing")
End Sub
Private Sub Zobraz(sS As String)
    Dim dData, dDatb As Date
    Please_wait(_OK, sS, 0)
    dSelDol = HDGraf.ChartAreas(0).AxisX.ScaleView.ViewMinimum
    dSelHor = HDGraf.ChartAreas(0).AxisX.ScaleView.ViewMaximum
    dData = Date.FromOADate(dSelDol)
    dDatb = Date.FromOADate(dSelHor)
    Me.Ldol.Text = Format(dData, "dd.MM.yyyy HH:mm:ss")
    Me.LHor.Text = Format(dDatb, "dd.MM.yyyy HH:mm:ss")
End Sub

最新更新