Как выполнить выровненную прокрутку по двум областям диаграммы без использования AlignToChartArea?

#c# #.net-3.5 #alignment #data-visualization #mschart

#c# #.net-3.5 #выравнивание #визуализация данных #mschart

Вопрос:

У меня есть два ChartArea объекта в Chart ( System.Windows.Forms.DataVisualization.Charting это то, что я использую).

Один из них представляет собой точечный график, а другой — график диапазона. Горизонтальная ось на графике 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;
    }
}
  

Что еще мне нужно сделать, чтобы диаграммы выстроились в линию? Физический экстент диаграмм одинаков. Это просто данные, которые немного смещены.

Спасибо за любую помощь.