Я пытаюсь установить размер объекта диаграммы в миллиметр в C#, используя следующий код:Как установить размер MS диаграммы в миллиметрах вместо пикселя в 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 пикселей на 200 пикселей?
Я также попытался установить блок страницы в postPaint случае использования
private void ChartPostPaint(object sender, ChartPaintEventArgs e)
{
var g = e.ChartGraphics.Graphics;
g.PageUnit = GraphicsUnit.Millimeter;
}
Но это не сработало! Не могли бы вы помочь мне установить размер диаграммы в миллиметрах или дюймах вместо пикселя?
Из официальной документации класса Chart не существует вариант, который говорит, что вы можете использовать мм как единица измерения. Вы пытались создать метод, который сделает это для вас? – eg16
MM - физическая единица и имеет смысл только при печати. Если вам нужен определенный размер пикселя с определенным разрешением dpi, вы можете сделать это, но на экране это просто не имеет смысла. Настройка. [RenderingDpiX/Y] (https://msdn.microsoft.com/en-US/en-en/library/system.windows.forms.datavisualization.charting.chart.renderingdpix%28v=vs.110%29. aspx) не предназначен для использования вами! Лучше всего используйте DrawToBitmap и setResolution на изображении, а затем сохраните! Также: никогда не используйте CreateGraphics – TaW