WinForm chart control: Change size of chart when saving it to a file
is there a way to change size of chart when using method Chart.SaveImage()
from the source code?
Right now the开发者_C百科 only way I found to set the size of chart, is resize the form on which chart control (System.Windows.Forms.DataVisualization.Charting.Chart
) sits. Can I explicit set its width and height? Trying to change Chart.Size
, Chart.Width
or Chart.Size
doesn't work.
All right. The solution was so obvious that I couldn't found it thou 3 days - I had setted Chart.Dock = DockStyle.Fill
, so changing Size
property doesn't affect. After modified it to DockStyle.None
I could change chart's size and (finally!) save it with appropriative width and height.
You can define it by redefining the Size property of the chart :
var ch = new Chart();
ch.Size = new Size(600, 250);
You'll probably have to save it to a memory stream, then use the Image class to change dimensions and then save it to file.
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);
}
}
精彩评论