如何在不使用AlignToChartArea的情况下对齐滚动两个图表区域?

时间:2011-05-10 22:17:12

标签: c# .net-3.5 alignment data-visualization mschart

我在ChartArea中有两个Chart个对象(我正在使用System.Windows.Forms.DataVisualization.Charting)。

一个是Point图,另一个是RangeBar图。 RangeBar图上的水平轴实际上是Y轴,所以我不能只使用这样的东西:

Chart1.ChartAreas["Chart Area 2"].AlignWithChartArea = "Default";

我已经想出如何缩放两个图表并保持它们对齐,但是当我尝试通过单击其中一个水平轴上的滚动条来滚动两个图表时,我无法将它排成一行。它们几乎排队,但它们可能大约一秒左右(两个图中的水平轴都是时间)。

这就是我所拥有的:

private void theChart_AxisViewChanged(object sender, ViewEventArgs e)
{
    if (e.ChartArea == theChart.ChartAreas["MyPointChartArea"])
    {
        theChart.ChartAreas["MyRangeBarChartArea"].AxisY.ScaleView.Position = e.NewPosition;
        theChart.ChartAreas["MyRangeBarChartArea"].AxisY.ScaleView.Size = e.NewSize;
        theChart.ChartAreas["MyRangeBarChartArea"].AxisY.ScaleView.SizeType = e.NewSizeType;
    }
    if (e.ChartArea == theChart.ChartAreas["MyRangeBarChartArea"])
    {
        theChart.ChartAreas["MyPointChartArea"].AxisX.ScaleView.Position = e.NewPosition;
        theChart.ChartAreas["MyPointChartArea"].AxisX.ScaleView.Size = e.NewSize;
        theChart.ChartAreas["MyPointChartArea"].AxisX.ScaleView.SizeType = e.NewSizeType;
    }
}

我还需要做些什么来使图表排成一行?图表的物理范围是相同的。这只是略微错位的数据。

感谢您的帮助。

0 个答案:

没有答案