インスタンスがBufferedGraphics
あり、その上にいくつかのグラフを描画します。DrawLegends
のインスタンスを取り、BufferedGraphics
凡例として2つの文字列を描画するという関数を作成したいと思います。
PointF
(0、0)を指すインスタンスを作成できますが、凡例を一番下に配置したいと思います。どのように進めればよいですか?インスタンスでそれを行うことはできBufferedGraphics
ますか、それとも描画しているパネルも必要ですか?
重要なことは、描画キャンバス (つまりパネル) の寸法 (主に高さ) を知る必要があるということです。これは、最終的に凡例の位置を計算するために使用されます。したがって、高さ情報が他の場所に保存されていない場合は、はい、パネルをある程度使用する必要があります
一日の終わりには、画面に描画されるほとんどすべてのオブジェクトを手動で描画できます。カバーの下にあるか、グラフィックオブジェクトを公開して、好きなときにペイントすることができます。
したがって、グラフィックスオブジェクトまたは現在使用しているもので描画を行う場合は、描画が完了したら、そのグラフィックスオブジェクトを表示するコントロールにペイントするだけです。グラフィックスオブジェクトを画像のように扱うことができます。独自のグラフィックスオブジェクトを作成するのではなく、ペイントする基になるコントロールのグラフィックスオブジェクトを渡すことができない理由はありませんが、次のようなメソッドがある場合は次のようになります。
void DrawGraph(string xLegend, string yLegend, IList<XYValues> values, Graphics graphics);
次に、データを使用してそのグラフィックオブジェクトに描画し、invalidateを呼び出して完了します。