1

Windows アプリケーションで MS Chart Control を使用しています。

私はさまざまなシリーズを動的にグラフ化しており、ユーザーは各シリーズがどのチャートタイプであるべきかを指定できます。これは、円グラフが折れ線グラフやスプライン グラフなどと組み合わされる状況につながります。

少なくとも 1 つのシリーズが円グラフとして指定されている場合は、グラフ領域と凡例を動的に追加して、これらの各シリーズに独自のグラフ領域を与えます。 ) が 1 つのチャートエリアに結合されます。

問題は、大多数が円グラフである 10 以上のシリーズを追加すると、グラフのサイズが小さくなりすぎて役に立たなくなることです。私の考えは、チャート コントロールのサイズを動的に大きくすることでした (それにより、内部のすべてのチャート領域のサイズが大きくなります)。私の問題は、明示的に設定しない限り、InnerPlotPosition の幅と高さが常にゼロであることです。

明示的に設定されていなくても、プロット領域のサイズをピクセルまたはパーセンテージ (ピクセルを取得するためにチャート コントロールのサイズを掛けることができます) などで決定する方法はありますか? これにより、チャート コントロールのサイズを最小 (そしてできれば読み取り可能な値) に達するまで大きくすることができます。

4

1 に答える 1

1

InnerPlotPosition は、少なくとも PostPaint イベント コールバックで設定されていることがわかりました。プロット エリアが計算される前に、そのプロパティを確認している可能性があります。

これは機能します:

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
}
于 2013-06-10T00:47:56.913 に答える