我有一个DataVisualization.Charting.Chart并且为了启用用户控制的缩放我设置了
chartArea1.CursorX.IsUserEnabled = true;
chartArea1.CursorX.IsUserSelectionEnabled = true;
chartArea1.CursorY.IsUserEnabled = true;
chartArea1.CursorY.IsUserSelectionEnabled = true;
但是,如果我创建一个具有轴的系列,数据范围在[-1,1]范围内,则图表将不允许在该轴上进行缩放。有没有办法启用缩放?
此外,缩放选择器看起来相当粗糙(它可以捕捉到主要的间隔或其他东西)是否可以让选择更顺畅?
答案 0 :(得分:0)
覆盖 WPF 和 WinForms ,因为您没有在问题中指定。
<强> WPF 强>
听起来图表正在虚拟化内容(即只绘制视图中的内容)。您可以通过将 ScrollViewer.CanContentScroll
设置为False
来验证是否属于这种情况。您将希望保持虚拟化,否则性能将受到大量数据集的影响。
<强>的WinForms 强>
您是否设置了Chart.DoubleBuffered
属性?将此属性设置为true
将使图表控件使用辅助缓冲区重绘其表面以减少或防止闪烁。
答案 1 :(得分:0)
问题原来是由于缩放光标只能在离散网格上获取位置坐标。它们由Cursor.Interval和Cursor.Offset控制。您可以通过设置
来更改此设置Chart.ChartAreas[0].CursorX.Interval = 0;
Chart.ChartAreas[0].CursorY.Interval = 0;
这使得网格连续,因此缩放光标可以采用任何坐标。