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 回答