【发布时间】:2019-01-19 18:52:57
【问题描述】:
我有一个包含两个区域的图表。当我在滚动条上缩放或滑动一个图表区域时,其他图表区域也会缩放和滑动。我一直在尝试将平移添加到我的项目中。当我搜索时,我发现了 MSChart 扩展,我很喜欢它 (https://www.codeproject.com/Articles/357817/MSChart-Extension-Zoom-and-Pan-Control)。
我想使用 MSChart 扩展,但就像我说的我需要同步两个图表区域。当我缩放一个图表区域时,另一个图表区域必须被缩放,或者当我平移一个区域时,另一个图表区域必须自动平移。
或者我只需要添加平移功能而不是没有 MSChart 扩展的滚动条。
你能帮我吗?
我是在没有 mschart 扩展的标准图表代码上使用以下代码片段完成的。它适用于鼠标滚轮缩放和滚动条上的滑动,但当我使用 MSChart 扩展(缩放和平移)控制图表时,它不会同步两个图表区域。
private void chart1_AxisViewChanged(object sender, ViewEventArgs e)
{
if (e.Axis == chart1.ChartAreas["ChartArea1"].AxisX)
{
chart1.ChartAreas["ChartArea2"].AxisX.ScaleView.Size = chart1.ChartAreas["ChartArea1"].AxisX.ScaleView.Size;
chart1.ChartAreas["ChartArea2"].AxisX.ScaleView.Position = chart1.ChartAreas["ChartArea1"].AxisX.ScaleView.Position;
}
if (e.Axis == chart1.ChartAreas["ChartArea2"].AxisX)
{
chart1.ChartAreas["ChartArea1"].AxisX.ScaleView.Size = chart1.ChartAreas["ChartArea2"].AxisX.ScaleView.Size;
chart1.ChartAreas["ChartArea1"].AxisX.ScaleView.Position = chart1.ChartAreas["ChartArea2"].AxisX.ScaleView.Position;
}
}
最好的问候,
【问题讨论】: