如何在 C# 中以毫米而不是像素设置 MS 图表的大小
How to set the size of MS chart in millimetre instead of pixel in C#
我正在尝试使用以下代码在 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;
}
但这也不行!您能帮我设置图表的尺寸(以毫米或英寸为单位而不是以像素为单位吗?
从 Chart()
的文档来看,默认的度量单位似乎是 px
。
但是,您可以使用 px
作为方法的输入,该方法可以为您提供 mm
.
上的值
为此,您可以这样写:
private double toMM(int _px)
{
return this._px*(300/254);
}
所以,现在你会有这样的东西:
chart.Size = new Size(toMM(290), toMM(200));
我正在尝试使用以下代码在 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;
}
但这也不行!您能帮我设置图表的尺寸(以毫米或英寸为单位而不是以像素为单位吗?
从 Chart()
的文档来看,默认的度量单位似乎是 px
。
但是,您可以使用 px
作为方法的输入,该方法可以为您提供 mm
.
上的值
为此,您可以这样写:
private double toMM(int _px)
{
return this._px*(300/254);
}
所以,现在你会有这样的东西:
chart.Size = new Size(toMM(290), toMM(200));