Как сохранить графический объект как изображение в 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");
        }
    }

в ответ на ваше редактирование:

если вы рисуете на панели с помощью