Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WinForm图表控件:保存到文件时更改图表的大小_C#_Winforms_Size_Save_Charts - Fatal编程技术网

C# WinForm图表控件:保存到文件时更改图表的大小

C# WinForm图表控件:保存到文件时更改图表的大小,c#,winforms,size,save,charts,C#,Winforms,Size,Save,Charts,使用源代码中的方法chart.SaveImage()时,是否有方法更改图表的大小 现在我找到的唯一设置图表大小的方法是调整图表控件(System.Windows.Forms.DataVisualization.Charting.chart)所在窗体的大小。我可以设置它的宽度和高度吗?试图更改Chart.Size、Chart.Width或Chart.Size不起作用。您可能需要将其保存到内存流中,然后使用Image类更改尺寸,然后将其保存到文件中 using(MemoryStream ms = n

使用源代码中的方法
chart.SaveImage()
时,是否有方法更改图表的大小


现在我找到的唯一设置图表大小的方法是调整图表控件(
System.Windows.Forms.DataVisualization.Charting.chart
)所在窗体的大小。我可以设置它的宽度和高度吗?试图更改
Chart.Size
Chart.Width
Chart.Size
不起作用。

您可能需要将其保存到内存流中,然后使用Image类更改尺寸,然后将其保存到文件中

using(MemoryStream ms = new MemoryStream(4096))
{
   myChart.SaveImage(ms,ImageFormat.Png);
   using(Bitmap img = Image.FromStream(ms))
   {
     using(Graphics g = Graphics.FromImage(img))
       g.DrawImage( b, 0, 0, newWidth, newHeight );
     }
     img.Save("where\to\save\chart.png",ImageFormat.Png);
   }
}

好的。解决方案非常明显,我三天都找不到它-我设置了
Chart.Dock=DockStyle.Fill
,因此更改
大小
属性不会影响。在修改为DockStyle.None后,我可以更改图表的大小,并(最后!)以适当的宽度和高度保存它

您可以通过重新定义图表的Size属性来定义它:

var ch = new Chart();
ch.Size = new Size(600, 250);

仍然没有效果。图像具有与原始图表相同的宽度/高度。由于其长度和内容,此答案被标记为低质量。也许再多加一点以向OP和其他人显示上下文?