如果我有一个带有2 chartAreas的图表控件,则默认情况下,该图表控件将chartAreas放在彼此之上,使每个区域占据图表控件可用大小的50%。

有没有一种方法可以更改chartAreas的百分比,以便我可以说,顶部的图表占据75%的面积,底部的图表占据25%的面积?

最佳答案

因此,我最终找到了它,但是我认为它没有很好的记录。每个chartArea都具有ChartArea.Position属性。类型为ElementPosition的此属性,包含与该问题相关的4个属性。

高度:获取或设置图表元素的高度。
宽度:获取或设置图表元素的宽度。
X:获取或设置适用图表元素左上角的相对X坐标。
Y:获取或设置适用图表元素左上角的相对Y坐标。

当您进行更深入的研究时,HeightWidth属性也以相对坐标表示,因此您只能输入0-100。

基本上,您必须更改每个高度,并移动每个Y来移动它们。初始创建后,它将不会自动调整其他数字。

例如,如果我只是将chartArea [1]的Height更改为较小的值,那么它仍然会 anchor 定在以前的位置,这很有意义,在它下面留了很多空白。

如果然后增加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像素。
如果此图表的高度为200px,则比例将相同,但实际像素将为两倍(因此将第一个图表区域设置为60将使其高度为120px)。

我确实在实际程序中做了一些填充,因为它具有覆盖轴标签的标题,但是我觉得这些数字有助于更好地解释它。

关于c# - 如何修改C#图表控件chartArea百分比,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15423080/

10-09 06:10