所以,我最终找到了它,但我不认为它有很好的记录。每个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 像素处显示第二个图表区域,并使其高约 20 像素。
如果这个图表是 200 像素高,那么比例将是相同的,但实际像素将是两倍(因此将第一个图表区域设置为 60 会使其高 120 像素)。
我确实在我的实际程序中多加了一点,因为它的标题覆盖了轴标签,但我觉得这些数字有助于更好地解释它。