9

2 を含むチャート コントロールがある場合chartAreas、チャート コントロールはデフォルトで chartAreas を互いの上に配置し、各領域がチャート コントロールの使用可能なサイズの 50% を占めるようにします。

chartAreas のパーセントを変更して、上部のグラフが領域の 75% を占め、下部のグラフが 25% を占めるようにする方法はありますか?

4

2 に答える 2

12

それで、最終的にそれを見つけましたが、十分に文書化されているとは思いません。それぞれにChartArea.PositionchartAreaプロパティがあります。タイプElementPositionのこのプロパティには、この問題に関連する 4 つのプロパティが含まれています。

Height: グラフ要素の高さを取得または設定します。
幅: グラフ要素の幅を取得または設定します。
X: 該当するグラフ要素の左上隅の相対 X 座標を取得または設定します。
Y: 該当するグラフ要素の左上隅の相対 Y 座標を取得または設定します。

さらに掘り下げると、HeightおよびWidthプロパティも相対座標で記述されており、0 ~ 100 しか入力できません。

基本的に、各高さを変更する必要があり、各 Y を移動してそれらをシフトする必要があります。最初の作成後、他の数値は自動的に調整されません。

たとえば、HeightchartArea[1] をもっと小さいものに変更しただけでも、以前の場所に固定されたままになり、その下に多くの空白が残ります。

その後Height、chartArea[0] を増やすと、サイズ変更したばかりの chartArea[1] の上に描画される可能性があります。そのためY、chartArea[1] を下に移動するように設定する必要があります。これにより、上に描画されず、空白がなくなります。

したがって、質問で尋ねたものと同様のものを得るために、次のように設定しました。

chart1.ChartAreas[0].Position.Y = 10;
chart1.ChartAreas[0].Position.Height = 60;
chart1.ChartAreas[1].Position.Y = 70;
chart1.ChartAreas[1].Position.Height = 20;

この説明をもう少し明確にするために、これらの chartArea が含まれている Chart コントロールを「親」と呼びます。

これらはパーセンテージですが、この例では、親のサイズが 100 ピクセルであると仮定します。

これにより、最初の chartArea の表示開始位置が 10 ピクセルに設定され、高さが約 60 ピクセルになります。次に、2 番目の chartArea を 70px で表示し始め、高さを約 20px にします。

このグラフの高さが 200px の場合、比率は同じになりますが、実際のピクセルは 2 倍になります (したがって、最初のグラフ領域を 60 に設定すると、高さが 120px になります)。

実際のプログラムでは、タイトルが軸ラベルを上書きしているため、これをもう少しパディングしましたが、これらの数字はそれをよりよく説明するのに役立つと感じました.

于 2013-03-15T19:20:02.787 に答える
3

2 番目のチャートの .Y 位置を最初のチャートの下部に設定することもできます。そうすれば、最初のチャートがどこにあるかだけを気にする必要があります。コードは次のようになります。

chart1.ChartAreas[0].Position.Y = 10;
chart1.ChartAreas[0].Position.Height = 60;
chart1.ChartAreas[1].Position.Y = chart1.ChartAreas[0].Position.Bottom;
chart1.ChartAreas[1].Position.Height = 20;

もちろん、チャート間に必要な空白の量に応じて、.Y 位置をパディングすることもできます。複数のチャートを使用して作成したアプリケーションにこのアプローチを使用しました。これにより、個々のチャートで何が行われたかに関係なく、各チャートが適切に配置されることが保証されます。

于 2013-07-10T15:03:34.227 に答える