Я пытаюсь отобразить растровое изображение, созданное с рисования на экран, но только визуализировать после минимизации и максимизации снова.Растровое изображение из чертежа не отображается за пределами Load_Form
Я выполните следующие действия: Using Bitmaps for Persistent Graphics in C#
Но только может сделать растровое изображение на экране за пределами Load_Form.
Если я ставлю код:
using System.Drawing;
...
Graphics graphicsObj;
myBitmap = new Bitmap(this.ClientRectangle.Width,
this.ClientRectangle.Height,
Imaging.PixelFormat.Format24bppRgb);
graphicsObj = Graphics.FromImage(myBitmap);
Pen myPen = new Pen(Color.Plum, 3);
Rectangle rectangleObj = new Rectangle(10, 10, 200, 200);
graphicsObj.DrawEllipse(myPen, rectangleObj);
graphicsObj.Dispose();
в другом месте, например, кнопки, мне нужно сворачивать и разворачивать, чтобы увидеть изображение.
Edit:
ВМР является Bitmap глобальная переменная создается экземпляр в виде события Load_Form1
bmp = new Bitmap(this.ClientRectangle.Width,
this.ClientRectangle.Height,
System.Drawing.Imaging.PixelFormat.Format24bppRgb);
Краска события Формы для перерисовки:
private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics graphicsObj = e.Graphics;
graphicsObj.DrawImage(myBitmap, 0, 0, myBitmap.Width, myBitmap.Height);
graphicsObj.Dispose();
}
Но мне нужно сделать сразу же после создания рисунка.
Код, который вы показываете, создает растровое изображение (и пропускает перо). __Where__ Вы думаете, что это должно показать? Вы присваиваете это чему-то, например, Image или BackgroundImage? Мини-макс 'трюк' звучит так, как будто вам не хватает Invalidate для отображения вещей, нарисованных в событии Paint, которое не имеет ничего общего с вышеуказанным кодом. – TaW
Я хочу показать в открытой форме. Я могу рисовать только тогда, когда Paint_Form1 запускается как шоу в «Правке», но мне нужно рисовать после генерации Bitmap. Я пытаюсь показать с ** graphicsObj.DrawImage (myBitmap, 0, 0, myBitmap.Width, myBitmap.Height); ** но работает только в Form1_Load. Я не могу показать из щелчка кнопки, которые создают растровое изображение. – omixam
OK. Если это то, что вы хотите (как это ни странно, странно), все, что вам нужно сделать, это добавить 'this.Invalidate();' после создания растрового изображения. И __please__ do __not__ уничтожить все, что вы __didn't__ создаете, например 'e.Grahphics' !! - Конечно, просто глядя на код, который вы нам показываете, вам совсем не нужно, кроме: 'using (Pen myPen = new Pen (Color.Plum, 3) e.Graphics.DrawEllipse (myPen, rectangleObj) , '' и Rectangle, конечно. Остальное кажется бесполезным, если вам не нужен битмап для какой-то другой цели. - Наконец: 24bpp не рекомендуется, если вам это действительно нужно, используйте 32bpp – TaW