所以,我最终找到了它,但我认为它的文档记录不是很好。每个chartArea
都有属性ChartArea.Position。该属性的类型为ElementPosition,包含4个与此问题相关的属性:
Height:获取或设置图表元素的高度。
Width:获取或设置图表元素的宽度。
X:获取或设置适用图表元素左上角相对 X 坐标。
Y:获取或设置适用图表元素左上角相对 Y 坐标。
当您深入了解时,Height
和Width
属性也是以相对坐标的形式呈现,因此您只能输入0-100之间的数字。
基本上,您必须更改每个高度和每个Y以移动它们。在初始创建之后,它不会自动调整其他数字。
例如,如果我只更改chartArea [1]的Height
为较小的值,则它仍将锚定在先前的位置,这是有道理的,留下大量白色空间。
然后,如果我增加chartArea [0]的Height
,它可能会绘制在我们刚刚调整大小的chartArea [1]上。因此,我必须设置chartArea [1]的Y
向下移动,以便它不会被覆盖,并且白色空间消失了。
所以,要获得与我在问题中提出的类似的东西,我将其设置为:
chart1.ChartAreas[0].Position.Y = 10
chart1.ChartAreas[0].Position.Height = 60
chart1.ChartAreas[1].Position.Y = 70
chart1.ChartAreas[1].Position.Height = 20
为了更清晰地解释,我将把包含这些chartAreas的Chart控件称为“父级”。这些是百分比值,但以本示例而言,让我们假设父级的大小为100像素。
这将使第一个chartArea从10像素开始显示,并使其高度约为60像素。然后在70像素处开始显示第二个chartArea,并使其高度约为20像素。
如果此图表高度为200像素,则比例相同,但实际像素会增加一倍(因此将第一个chart area设置为60将使其高度为120像素)。我在我的真实程序中进行了更多的填充,因为标题覆盖了轴标签,但我觉得这些数字有助于更好地解释它。