Как сделать выравниваемую прокрутку между двумя областями диаграммы, не используя AlignToChartArea? - PullRequest
2 голосов
/ 11 мая 2011

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

Один - это точечный граф, а другой - это 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;
    }
}

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

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

...