Как сохранить графический объект как изображение в C#?
у меня есть панель и различные элементы управления на ней. Я хотел бы сохранить изображение этой панели в файл, как это сделать ?
нужно сделать что-то вроде скриншота, но мне нужно только изображение определенной панели в моем приложении, и я хочу сделать это одним нажатием кнопки в моем приложении.
С наилучшими пожеланиями, Примоз
изменить: Я также рисую на этой панели, используя этот код
Graphics g = chartTemperature.CreateGraphics();
g.DrawLine(p, prevPoint, e.Location);
prevPoint = e.Location;
но тогда я не понимаю этого образа. Почему и как это исправить ?
EDIT 2:
namespace Grafi
{
public partial class Form1 : Form
{
bool isDrawing = false;
Point prevPoint;
public Form1()
{
InitializeComponent();
}
private void chartTemperature_MouseDown(object sender, MouseEventArgs e)
{
isDrawing = true;
prevPoint = e.Location;
}
private void chartTemperature_MouseMove(object sender, MouseEventArgs e)
{
Pen p = new Pen(Color.Red, 2);
if (isDrawing)
{
Graphics g = chartTemperature.CreateGraphics();
g.DrawLine(p, prevPoint, e.Location);
prevPoint = e.Location;
numOfMouseEvents = 0;
}
p.Dispose();
}
private void chartTemperature_MouseUp(object sender, MouseEventArgs e)
{
isDrawing = false;
}
}
}
Это мой код рисования, чтобы нарисовать линию на графике. Не могли бы вы помочь мне сделать это правильно ?
2 ответов
использовать управление.DrawToBitmap() метод. Например:
private void button1_Click(object sender, EventArgs e) {
using (var bmp = new Bitmap(panel1.Width, panel1.Height)) {
panel1.DrawToBitmap(bmp, new Rectangle(0, 0, bmp.Width, bmp.Height));
bmp.Save(@"c:\temp\test.png");
}
}