2013-04-23 70 views
1

我正在Windows應用程序中使用MS圖表控件。如何獲取Microsoft圖表控件中的繪圖區域的大小

我正在動態繪製各種系列,用戶可以指定每個系列應該是哪個圖表類型。這導致了餅圖與線/樣條圖等組合的情況。

當至少有一個系列被指定爲餅圖時,我動態地添加chartareas和傳說以給這些系列中的每一個自己的chartarea ,而所有的「基本」charttypes(線(面積)/樣條(面積)/等)被合併成一個chartarea。

問題是,當添加10+系列,其中大多數是餅圖時,圖表被調整大小如此之小,它們變得毫無用處。我的想法是動態增加圖表控件的大小(從而增加所有圖表的大小)。我的問題是,InnerPlotPosition的寬度和高度始終爲零,除非我明確設置它們。

是否有任何方法來確定繪圖區域的大小以像素或百分比(我可以乘以圖表控件大小以獲得像素)等等,即使未明確設置?這將允許我增加圖表控件的大小,直到達到最小值(並且希望可讀)。

回答

1

我發現至少在PostPaint事件回調中設置了InnerPlotPosition。您可能正在計算繪圖區域之前檢查該屬性。

這工作:

var c = new Chart(); 
c.PostPaint += c_PostPaint; 
// Do whatever to setup the chart 
// Then in my case I'm saving the image which causes rendering 
c.SaveImage(myFileName); 


void c_PostPaint(object sender, ChartPaintEventArgs e) 
{ 
    var ipp = e.Chart.ChartAreas[0].InnerPlotPosition; // Values populated here 
} 
+0

這正是我問,雖然似乎難以調整在渲染過程中這一點上,控制並得到它正確地重繪。不幸的是,Customize事件(在我理解諸如調整大小的事情的意圖發生的情況下)InnerPlotPosition尚未確定。無論如何,你回答了我的問題。謝謝。 – 2013-06-11 20:20:35

相關問題