如何在运行时调整 ChartArea 的大小

How can I resize a ChartArea during runtime

我里面有一个图表和一个 ChartArea。

我想在 Y 轴或 X 轴上调整 ChartArea 的大小,但我做不到。我需要一个可以在运行时用鼠标调整大小的 ChartArea 控件元素。

我需要调整图表(或 ChartArea)上的元素,这会调整我的 ChartArea..

这是一个例子..

  • ..添加一个可移动的 HorizontalLineAnnotation 作为句柄并且..
  • ..编码 AnnotationPositionChanging 以使用句柄作为 两个 之间的滑块 ChartAreas:

在class级别定义:

HorizontalLineAnnotation slider =   new HorizontalLineAnnotation();

设置并添加到Chart:

slider.AllowMoving = true;
slider.LineWidth = 2;
slider.LineColor = Color.DarkSlateGray;
slider.X = 0;     
slider.Y = 50;
slider.Width = 100;
chart1.Annotations.Add(slider);

这会将滑块设置到中间的左侧,并使其横跨整个图表。

private void chart1_AnnotationPositionChanging(object sender,
                                               AnnotationPositionChangingEventArgs e)
{
    if (e.Annotation == slider)
    {
        chart1.ChartAreas[0].Position.Height = (float)slider.Y - 4;
        chart1.ChartAreas[1].Position.Height = (float)(100f - slider.Y) - 4;
        chart1.ChartAreas[1].Position.Y = (float)slider.Y;

        chart1.Update();
    }
}

这会调整两个 ChartAreas 的大小,为外部事物保留 4% 的松弛度。我有一个 Title,一个停靠在顶部的 Legend 或大的 Labels,您需要提供超过 4%...

当然你也可以修改它来改变一个 ChartArea 的大小,虽然我不明白你为什么要那样..