1. 程式人生 > 其它 >如何修改C#Chart控制圖區域百分比

如何修改C#Chart控制圖區域百分比

如果我有一個包含2個chartAreas的圖表控制元件,預設情況下圖表控制元件會將chartAreas放在彼此的頂部,使得每個區域佔據圖表控制元件可用大小的50%.有沒有辦法改變chartAreas的百分比,以便我可以說,頂部圖表佔據該區域的75%,而底部圖表佔25%?

所以,我最終找到了它,但我不認為它有很好的記錄.每個chartArea都有屬性ChartArea.Position.這個屬性型別為ElementPosition,包含4個與此問題相關的屬性.

高度:獲取或設定圖表元素的高度.
寬度:獲取或設定圖表元素的寬度.
X:獲取或設定適用圖表元素左上角的相對X座標.
Y:獲取或設定適用圖表元素左上角的相對Y座標.

深挖時,高度和寬度屬性也以相對座標表示,這樣您只能輸入0 – 100.

基本上,你必須改變每個高度,每個Y移動它們.初始建立後,它不會自動調整其他數字.

例如,如果我只是將chartArea [1]的高度更改為更小的值,那麼它仍然會固定在之前的位置,這是有道理的,在它下面留下了很多空白區域.

如果我然後增加chartArea [0]的高度,它可能會覆蓋我們剛剛調整大小的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;

為了使這個解釋更加清楚,我將引用Chart控制元件,這些chartAreas作為“父”.

這些是百分比,但對於此示例,我們假設父級的大小為100畫素.

這將第一個chartArea開始顯示為10 px,並使其高約60px.然後它開始以70px顯示第二個chartArea,並使其大約20px高.
如果此圖表高200畫素,那麼比例將是相同的,但實際畫素將是兩倍(因此將第一個圖表區域設定為60將使其高120畫素).

我在我的真實程式中更多地填充了這個,因為它有標題覆蓋軸標籤,但我覺得這些數字有助於更好地解釋它.