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

时间:2016-11-29 03:30:50

标签: c# visual-studio mschart

我有一个图表和一个ChartArea。

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

我需要调整图表(或ChartArea)上的元素大小来调整我的ChartArea的大小..

1 个答案:

答案 0 :(得分:0)

这是一个例子..

  • ..添加了一个可移动的HorizontalLineAnnotation作为句柄和..
  • ..对AnnotationPositionChanging进行编码,以便将句柄用作两个 ChartAreas之间的滑块:

enter image description here

在班级定义:

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的大小,虽然我不明白为什么你会想要那个......