【问题标题】:.NET 4 Chart, Retrieve range after ZOOM IN/OUT and scrolling.NET 4 图表,在 ZOOM IN/OUT 和滚动后检索范围
【发布时间】:2013-12-01 06:59:33
【问题描述】:

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

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

How to retrieve the selected range in the .Net WinForms Chart Control?

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

我尝试同时检查SelectionRangeChangIN/CHANGED,但这些 FIRE/工作都不适用于 ZOOM OUT/Scroll。

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

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

【问题讨论】:

    标签: .net charts


    【解决方案1】:

    解决了! 我从这里添加鼠标滚轮缩放:

    how to enable zooming in Microsoft chart control by using Mouse wheel

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

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

    我使用 AxisX.ScaleView.ViewMinimum 和 AxisX.ScaleView.ViewMaximum,在所有这 3 种情况下似乎都可以。 这是我的一些跟踪示例。变量 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-22
      • 1970-01-01
      • 2023-01-10
      相关资源
      最近更新 更多