0

次のコードを使用して、C# でチャート オブジェクトのサイズをミリメートル単位で設定しようとしています。

var chart = new Chart();
chart.RenderingDpiX = 300;
chart.RenderingDpiY = 300;
chart.CreateGraphics().PageUnit = GraphicsUnit.Millimeter;
chart.Size = new Size(290, 200); // meant to be 290 millimetre not pixel
...
chart.SaveImage(@"D:\Temp\tttt.png", ChartImageFormat.Png);

保存された画像のサイズは約 290 * (300/254) = 3425 ピクセルになると思いますが、画像のサイズは 290 ピクセル x 200 ピクセルですか?

また、postPaint イベントでページ単位を設定しようとしました

private void ChartPostPaint(object sender, ChartPaintEventArgs e)
{
  var g = e.ChartGraphics.Graphics;
  g.PageUnit = GraphicsUnit.Millimeter;
} 

しかし、これもうまくいきません!グラフのサイズをピクセルではなくミリメートルまたはインチで設定する方法を教えてください。

4

1 に答える 1

0

のドキュメントからChart()、デフォルトの測定単位は のようですpx
ただし、 をpxメソッドの入力として使用して、 on の値を取得できますmm
これを行うには、次のように記述できます。

private double toMM(int _px)
{
    return this._px*(300/254);
}

したがって、次のようなものになります。

chart.Size = new Size(toMM(290), toMM(200));
于 2016-10-26T11:43:57.907 に答える